爱笑的大脸猫 · ViewPager Using ...· 2 周前 · |
神勇威武的感冒药 · Activities - Add ...· 2 周前 · |
火星上的海豚 · 手把手教你部署AIGC创作平台,赢取多重豪礼 ...· 4 月前 · |
私奔的酱牛肉 · Releases · ...· 4 月前 · |
健身的鸡蛋面 · 北京市海淀区人民政府· 4 月前 · |
活泼的大葱 · Add "boolean" as an ...· 6 月前 · |
dart intent activity |
https://api.flutter.dev/javadoc/io/flutter/embedding/android/FlutterActivity.html |
奔跑的青椒
3 月前 |
ComponentCallbacks
,
ComponentCallbacks2
,
KeyEvent.Callback
,
LayoutInflater.Factory
,
LayoutInflater.Factory2
,
View.OnCreateContextMenuListener
,
Window.Callback
,
androidx.lifecycle.LifecycleOwner
,
FlutterEngineConfigurator
,
FlutterEngineProvider
,
PlatformPlugin.PlatformPluginDelegate
Activity
which displays a fullscreen Flutter UI.
FlutterActivity
is the simplest and most direct way to integrate Flutter within an
Android app.
FlutterActivity responsibilities
FlutterActivity
maintains the following responsibilities:
Activity
transparently, if desired.
FlutterEngine
.
#shouldRestoreAndSaveState()
;
Dart entrypoint, entrypoint arguments, initial route, and app bundle path
The Dart entrypoint executed within this
Activity
is "main()" by default. To change
the entrypoint that a
FlutterActivity
executes, subclass
FlutterActivity
and
override
getDartEntrypointFunctionName()
. For non-main Dart entrypoints to not be
tree-shaken away, you need to annotate those functions with
@pragma('vm:entry-point')
in
Dart.
The Dart entrypoint arguments will be passed as a list of string to Dart's entrypoint
function. It can be passed using a
FlutterActivity.NewEngineIntentBuilder
via
FlutterActivity.NewEngineIntentBuilder.dartEntrypointArgs
.
The Flutter route that is initially loaded within this
Activity
is "/". The initial
route may be specified explicitly by passing the name of the route as a
String
in
FlutterActivityLaunchConfigs.EXTRA_INITIAL_ROUTE
, e.g., "my/deep/link".
The initial route can each be controlled using a
FlutterActivity.NewEngineIntentBuilder
via
FlutterActivity.NewEngineIntentBuilder.initialRoute
.
The app bundle path, Dart entrypoint, Dart entrypoint arguments, and initial route can also be
controlled in a subclass of
FlutterActivity
by overriding their respective methods:
getAppBundlePath()
getDartEntrypointFunctionName()
getDartEntrypointArgs()
getInitialRoute()
The Dart entrypoint and app bundle path are not supported as
Intent
parameters since
your Dart library entrypoints are your private APIs and Intents are invocable by other processes.
Using a cached FlutterEngine
FlutterActivity
can be used with a cached
FlutterEngine
instead of creating a new one. Use
withCachedEngine(String)
to build a
FlutterActivity
Intent
that is configured
to use an existing, cached
FlutterEngine
.
FlutterEngineCache
is the cache that is used to obtain a given
cached
FlutterEngine
. You must create and put a
FlutterEngine
into the
FlutterEngineCache
yourself before using the
withCachedEngine(String)
builder. An
IllegalStateException
will be thrown if a cached
engine is requested but does not exist in the cache.
When using a cached
FlutterEngine
, that
FlutterEngine
should already be executing Dart code, which means
that the Dart entrypoint and initial route have already been defined. Therefore,
FlutterActivity.CachedEngineIntentBuilder
does not offer configuration of these properties.
It is generally recommended to use a cached
FlutterEngine
to avoid a momentary delay when initializing a new
FlutterEngine
. The two exceptions to using a cached
FlutterEngine
are:
FlutterActivity
is the first
Activity
displayed by the app, because
pre-warming a
FlutterEngine
would have no impact in
this situation.
See https://flutter.dev/docs/development/add-to-app/performance for additional performance explorations on engine loading.
The following illustrates how to pre-warm and cache a
FlutterEngine
:
// Create and pre-warm a FlutterEngine.
FlutterEngineGroup group = new FlutterEngineGroup(context);
FlutterEngine flutterEngine = group.createAndRunDefaultEngine(context);
flutterEngine.getDartExecutor().executeDartEntrypoint(DartEntrypoint.createDefault());
// Cache the pre-warmed FlutterEngine in the FlutterEngineCache.
FlutterEngineCache.getInstance().put("my_engine", flutterEngine);
Alternatives to FlutterActivity
If Flutter is needed in a location that cannot use an
Activity
, consider using a
FlutterFragment
. Using a
FlutterFragment
requires forwarding some calls from an
Activity
to the
FlutterFragment
.
If Flutter is needed in a location that can only use a
View
, consider using a
FlutterView
. Using a
FlutterView
requires forwarding some calls from an
Activity
, as well as forwarding lifecycle calls from an
Activity
or a
Fragment
.
Launch Screen
FlutterActivity
supports the display of an Android "launch screen", which is displayed
while the Android application loads. It is only applicable if
FlutterActivity
is the
first
Activity
displayed upon loading the app.
Prior to Flutter 2.5,
FlutterActivity
supported the display of a Flutter-specific
"splash screen" that would be displayed after the launch screen passes. This has since been
deprecated. If a launch screen is specified, it will automatically persist for as long as it
takes Flutter to initialize and render its first frame.
Use Android themes to display a launch screen. Create two themes: a launch theme and a normal
theme. In the launch theme, set
windowBackground
to the desired
Drawable
for the
launch screen. In the normal theme, set
windowBackground
to any desired background color
that should normally appear behind your Flutter content. In most cases this background color will
never be seen, but for possible transition edge cases it is a good idea to explicitly replace the
launch screen window background with a neutral color.
Do not change aspects of system chrome between a launch theme and normal theme. Either define both themes to be fullscreen or not, and define both themes to display the same status bar and navigation bar settings. To adjust system chrome once the Flutter app renders, use platform channels to instruct Android to do so at the appropriate time. This will avoid any jarring visual changes during app startup.
In the AndroidManifest.xml, set the theme of
FlutterActivity
to the defined launch
theme. In the metadata section for
FlutterActivity
, defined the following reference to
your normal theme:
<meta-data android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/YourNormalTheme" />
With themes defined, and AndroidManifest.xml updated, Flutter displays the specified launch screen until the Android application is initialized.
Alternative Activity
FlutterFragmentActivity
is also available, which
is similar to
FlutterActivity
but it extends
FragmentActivity
. You should use
FlutterActivity
, if possible, but if you need a
FragmentActivity
then you should
use
FlutterFragmentActivity
.
Intent
that launches a
FlutterActivity
with an existing
FlutterEngine
that is cached in
FlutterEngineCache
.
static class
Intent
that launches a
FlutterActivity
with a new
FlutterEngine
created by FlutterEngineGroup#createAndRunEngine.
static class
Intent
that launches a
FlutterActivity
with a new
FlutterEngine
and the desired configuration.
Activity.ScreenCaptureCallback
Context.BindServiceFlags
protected io.flutter.embedding.android.FlutterActivityAndFragmentDelegate
static final int
FlutterView
created by this activity.
DEFAULT_KEYS_DIALER
,
DEFAULT_KEYS_DISABLE
,
DEFAULT_KEYS_SEARCH_GLOBAL
,
DEFAULT_KEYS_SEARCH_LOCAL
,
DEFAULT_KEYS_SHORTCUT
,
FOCUSED_STATE_SET
,
FULLSCREEN_MODE_REQUEST_ENTER
,
FULLSCREEN_MODE_REQUEST_EXIT
,
OVERRIDE_TRANSITION_CLOSE
,
OVERRIDE_TRANSITION_OPEN
,
RESULT_CANCELED
,
RESULT_FIRST_USER
,
RESULT_OK
ACCESSIBILITY_SERVICE
,
ACCOUNT_SERVICE
,
ACTIVITY_SERVICE
,
ALARM_SERVICE
,
APP_OPS_SERVICE
,
APP_SEARCH_SERVICE
,
APPWIDGET_SERVICE
,
AUDIO_SERVICE
,
BATTERY_SERVICE
,
BIND_ABOVE_CLIENT
,
BIND_ADJUST_WITH_ACTIVITY
,
BIND_ALLOW_ACTIVITY_STARTS
,
BIND_ALLOW_OOM_MANAGEMENT
,
BIND_AUTO_CREATE
,
BIND_DEBUG_UNBIND
,
BIND_EXTERNAL_SERVICE
,
BIND_EXTERNAL_SERVICE_LONG
,
BIND_IMPORTANT
,
BIND_INCLUDE_CAPABILITIES
,
BIND_NOT_FOREGROUND
,
BIND_NOT_PERCEPTIBLE
,
BIND_SHARED_ISOLATED_PROCESS
,
BIND_WAIVE_PRIORITY
,
BIOMETRIC_SERVICE
,
BLOB_STORE_SERVICE
,
BLUETOOTH_SERVICE
,
BUGREPORT_SERVICE
,
CAMERA_SERVICE
,
CAPTIONING_SERVICE
,
CARRIER_CONFIG_SERVICE
,
CLIPBOARD_SERVICE
,
COMPANION_DEVICE_SERVICE
,
CONNECTIVITY_DIAGNOSTICS_SERVICE
,
CONNECTIVITY_SERVICE
,
CONSUMER_IR_SERVICE
,
CONTEXT_IGNORE_SECURITY
,
CONTEXT_INCLUDE_CODE
,
CONTEXT_RESTRICTED
,
CREDENTIAL_SERVICE
,
CROSS_PROFILE_APPS_SERVICE
,
DEVICE_ID_DEFAULT
,
DEVICE_ID_INVALID
,
DEVICE_LOCK_SERVICE
,
DEVICE_POLICY_SERVICE
,
DISPLAY_HASH_SERVICE
,
DISPLAY_SERVICE
,
DOMAIN_VERIFICATION_SERVICE
,
DOWNLOAD_SERVICE
,
DROPBOX_SERVICE
,
EUICC_SERVICE
,
FILE_INTEGRITY_SERVICE
,
FINGERPRINT_SERVICE
,
GAME_SERVICE
,
GRAMMATICAL_INFLECTION_SERVICE
,
HARDWARE_PROPERTIES_SERVICE
,
HEALTHCONNECT_SERVICE
,
INPUT_METHOD_SERVICE
,
INPUT_SERVICE
,
IPSEC_SERVICE
,
JOB_SCHEDULER_SERVICE
,
KEYGUARD_SERVICE
,
LAUNCHER_APPS_SERVICE
,
LAYOUT_INFLATER_SERVICE
,
LOCALE_SERVICE
,
LOCATION_SERVICE
,
MEDIA_COMMUNICATION_SERVICE
,
MEDIA_METRICS_SERVICE
,
MEDIA_PROJECTION_SERVICE
,
MEDIA_ROUTER_SERVICE
,
MEDIA_SESSION_SERVICE
,
MIDI_SERVICE
,
MODE_APPEND
,
MODE_ENABLE_WRITE_AHEAD_LOGGING
,
MODE_MULTI_PROCESS
,
MODE_NO_LOCALIZED_COLLATORS
,
MODE_PRIVATE
,
MODE_WORLD_READABLE
,
MODE_WORLD_WRITEABLE
,
NETWORK_STATS_SERVICE
,
NFC_SERVICE
,
NOTIFICATION_SERVICE
,
NSD_SERVICE
,
OVERLAY_SERVICE
,
PEOPLE_SERVICE
,
PERFORMANCE_HINT_SERVICE
,
POWER_SERVICE
,
PRINT_SERVICE
,
RECEIVER_EXPORTED
,
RECEIVER_NOT_EXPORTED
,
RECEIVER_VISIBLE_TO_INSTANT_APPS
,
RESTRICTIONS_SERVICE
,
ROLE_SERVICE
,
SEARCH_SERVICE
,
SENSOR_SERVICE
,
SHORTCUT_SERVICE
,
STATUS_BAR_SERVICE
,
STORAGE_SERVICE
,
STORAGE_STATS_SERVICE
,
SYSTEM_HEALTH_SERVICE
,
TELECOM_SERVICE
,
TELEPHONY_IMS_SERVICE
,
TELEPHONY_SERVICE
,
TELEPHONY_SUBSCRIPTION_SERVICE
,
TEXT_CLASSIFICATION_SERVICE
,
TEXT_SERVICES_MANAGER_SERVICE
,
TV_INPUT_SERVICE
,
TV_INTERACTIVE_APP_SERVICE
,
UI_MODE_SERVICE
,
USAGE_STATS_SERVICE
,
USB_SERVICE
,
USER_SERVICE
,
VIBRATOR_MANAGER_SERVICE
,
VIBRATOR_SERVICE
,
VIRTUAL_DEVICE_SERVICE
,
VPN_MANAGEMENT_SERVICE
,
WALLPAPER_SERVICE
,
WIFI_AWARE_SERVICE
,
WIFI_P2P_SERVICE
,
WIFI_RTT_RANGING_SERVICE
,
WIFI_SERVICE
,
WINDOW_SERVICE
TRIM_MEMORY_BACKGROUND
,
TRIM_MEMORY_COMPLETE
,
TRIM_MEMORY_MODERATE
,
TRIM_MEMORY_RUNNING_CRITICAL
,
TRIM_MEMORY_RUNNING_LOW
,
TRIM_MEMORY_RUNNING_MODERATE
,
TRIM_MEMORY_UI_HIDDEN
FlutterView
to the engine.
cleanUpFlutterEngine
(
FlutterEngine
flutterEngine)
configureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.
configureFlutterEngine
(
FlutterEngine
flutterEngine)
FlutterEngine
.
static
Intent
createDefaultIntent
(
Context
launchContext)
Intent
that launches a
FlutterActivity
, which creates a
FlutterEngine
that executes a
main()
Dart entrypoint, and displays the "/" route as
Flutter's initial route.
getActivity
()
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain an
Activity
reference as needed.
Activity
, which defaults to
FlutterActivityLaunchConfigs.BackgroundMode.opaque
.
FlutterEngineGroup
to
use within this
FlutterActivity
, or
null
if this
FlutterActivity
does
not want to use a cached
FlutterEngineGroup
.
FlutterEngine
to use
within this
FlutterActivity
, or
null
if this
FlutterActivity
does not
want to use a cached
FlutterEngine
.
getContext
()
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain a
Context
reference as needed.
FlutterEngine
.
protected
FlutterEngine
FlutterEngine
that is owned by this
FlutterActivity
.
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain Flutter shell arguments when initializing
Flutter.
androidx.lifecycle.Lifecycle
getLifecycle
()
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain a
Lifecycle
reference as needed.
protected
Bundle
getMetaData
()
protected
OnBackInvokedCallback
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain the desired
RenderMode
that should be
used when instantiating a
FlutterView
.
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain the desired
TransparencyMode
that should
be used when instantiating a
FlutterView
.
protected void
onActivityResult
(int requestCode,
int resultCode,
Intent
data)
protected void
protected void
onDestroy
()
onFlutterSurfaceViewCreated
(
FlutterSurfaceView
flutterSurfaceView)
onFlutterTextureViewCreated
(
FlutterTextureView
flutterTextureView)
protected void
onNewIntent
(
Intent
intent)
protected void
onPause
()
onPostResume
()
onRequestPermissionsResult
(int requestCode,
String
[] permissions,
int[] grantResults)
protected void
onResume
()
protected void
onSaveInstanceState
(
Bundle
outState)
protected void
onStart
()
protected void
onStop
()
onTrimMemory
(int level)
onWindowFocusChanged
(boolean hasFocus)
boolean
provideFlutterEngine
(
Context
context)
FlutterEngine
.
providePlatformPlugin
(
Activity
activity,
FlutterEngine
flutterEngine)
release
()
FlutterEngine
and its subcomponents.
setFrameworkHandlesBack
(boolean frameworkHandlesBack)
boolean
FlutterFragment
within this
Activity
automatically attaches its
FlutterEngine
to this
Activity
.
boolean
FlutterEngine
backing this
FlutterActivity
should outlive this
FlutterActivity
, or true to be destroyed when the
FlutterActivity
is destroyed.
boolean
boolean
Intent
automatically if the
getInitialRoute
returns null.
boolean
startBackGesture
(
BackEvent
backEvent)
updateBackGestureProgress
(
BackEvent
backEvent)
withCachedEngine
(
String
cachedEngineId)
FlutterActivity.CachedEngineIntentBuilder
, which can be used to configure an
Intent
to launch a
FlutterActivity
that internally uses an existing
FlutterEngine
that is cached in
FlutterEngineCache
.
FlutterActivity.NewEngineIntentBuilder
, which can be used to configure an
Intent
to
launch a
FlutterActivity
that internally creates a new
FlutterEngine
using the desired Dart entrypoint, initial route,
withNewEngineInGroup
(
String
engineGroupId)
FlutterActivity.NewEngineInGroupIntentBuilder
, which can be used to configure an
Intent
to launch a
FlutterActivity
by internally creating a FlutterEngine from an
existing
FlutterEngineGroup
cached in a specified
FlutterEngineGroupCache
.
addContentView
,
attachBaseContext
,
clearOverrideActivityTransition
,
closeContextMenu
,
closeOptionsMenu
,
createPendingResult
,
dismissDialog
,
dismissKeyboardShortcutsHelper
,
dispatchGenericMotionEvent
,
dispatchKeyEvent
,
dispatchKeyShortcutEvent
,
dispatchPopulateAccessibilityEvent
,
dispatchTouchEvent
,
dispatchTrackballEvent
,
dump
,
enterPictureInPictureMode
,
enterPictureInPictureMode
,
findViewById
,
finish
,
finishActivity
,
finishActivityFromChild
,
finishAffinity
,
finishAfterTransition
,
finishAndRemoveTask
,
finishFromChild
,
getActionBar
,
getApplication
,
getCallingActivity
,
getCallingPackage
,
getChangingConfigurations
,
getComponentName
,
getContentScene
,
getContentTransitionManager
,
getCurrentFocus
,
getFragmentManager
,
getIntent
,
getLastNonConfigurationInstance
,
getLaunchedFromPackage
,
getLaunchedFromUid
,
getLayoutInflater
,
getLoaderManager
,
getLocalClassName
,
getMaxNumPictureInPictureActions
,
getMediaController
,
getMenuInflater
,
getOnBackInvokedDispatcher
,
getParent
,
getParentActivityIntent
,
getPreferences
,
getReferrer
,
getRequestedOrientation
,
getSearchEvent
,
getSplashScreen
,
getSystemService
,
getTaskId
,
getTitle
,
getTitleColor
,
getVoiceInteractor
,
getVolumeControlStream
,
getWindow
,
getWindowManager
,
hasWindowFocus
,
invalidateOptionsMenu
,
isActivityTransitionRunning
,
isChangingConfigurations
,
isChild
,
isDestroyed
,
isFinishing
,
isImmersive
,
isInMultiWindowMode
,
isInPictureInPictureMode
,
isLaunchedFromBubble
,
isLocalVoiceInteractionSupported
,
isTaskRoot
,
isVoiceInteraction
,
isVoiceInteractionRoot
,
managedQuery
,
moveTaskToBack
,
navigateUpTo
,
navigateUpToFromChild
,
onActionModeFinished
,
onActionModeStarted
,
onActivityReenter
,
onApplyThemeResource
,
onAttachedToWindow
,
onAttachFragment
,
onChildTitleChanged
,
onConfigurationChanged
,
onContentChanged
,
onContextItemSelected
,
onContextMenuClosed
,
onCreate
,
onCreateContextMenu
,
onCreateDescription
,
onCreateDialog
,
onCreateDialog
,
onCreateNavigateUpTaskStack
,
onCreateOptionsMenu
,
onCreatePanelMenu
,
onCreatePanelView
,
onCreateThumbnail
,
onCreateView
,
onCreateView
,
onDetachedFromWindow
,
onEnterAnimationComplete
,
onGenericMotionEvent
,
onGetDirectActions
,
onKeyDown
,
onKeyLongPress
,
onKeyMultiple
,
onKeyShortcut
,
onKeyUp
,
onLocalVoiceInteractionStarted
,
onLocalVoiceInteractionStopped
,
onLowMemory
,
onMenuItemSelected
,
onMenuOpened
,
onMultiWindowModeChanged
,
onMultiWindowModeChanged
,
onNavigateUp
,
onNavigateUpFromChild
,
onOptionsItemSelected
,
onOptionsMenuClosed
,
onPanelClosed
,
onPerformDirectAction
,
onPictureInPictureModeChanged
,
onPictureInPictureModeChanged
,
onPictureInPictureRequested
,
onPictureInPictureUiStateChanged
,
onPostCreate
,
onPostCreate
,
onPrepareDialog
,
onPrepareDialog
,
onPrepareNavigateUpTaskStack
,
onPrepareOptionsMenu
,
onPreparePanel
,
onProvideAssistContent
,
onProvideAssistData
,
onProvideKeyboardShortcuts
,
onProvideReferrer
,
onRestart
,
onRestoreInstanceState
,
onRestoreInstanceState
,
onRetainNonConfigurationInstance
,
onSaveInstanceState
,
onSearchRequested
,
onSearchRequested
,
onStateNotSaved
,
onTitleChanged
,
onTopResumedActivityChanged
,
onTouchEvent
,
onTrackballEvent
,
onUserInteraction
,
onVisibleBehindCanceled
,
onWindowAttributesChanged
,
onWindowStartingActionMode
,
onWindowStartingActionMode
,
openContextMenu
,
openOptionsMenu
,
overrideActivityTransition
,
overrideActivityTransition
,
overridePendingTransition
,
overridePendingTransition
,
postponeEnterTransition
,
recreate
,
registerActivityLifecycleCallbacks
,
registerComponentCallbacks
,
registerForContextMenu
,
registerScreenCaptureCallback
,
releaseInstance
,
removeDialog
,
reportFullyDrawn
,
requestDragAndDropPermissions
,
requestFullscreenMode
,
requestPermissions
,
requestShowKeyboardShortcuts
,
requestVisibleBehind
,
requestWindowFeature
,
requireViewById
,
runOnUiThread
,
setActionBar
,
setContentTransitionManager
,
setContentView
,
setContentView
,
setContentView
,
setDefaultKeyMode
,
setEnterSharedElementCallback
,
setExitSharedElementCallback
,
setFeatureDrawable
,
setFeatureDrawableAlpha
,
setFeatureDrawableResource
,
setFeatureDrawableUri
,
setFinishOnTouchOutside
,
setImmersive
,
setInheritShowWhenLocked
,
setIntent
,
setLocusContext
,
setMediaController
,
setPictureInPictureParams
,
setProgress
,
setProgressBarIndeterminate
,
setProgressBarIndeterminateVisibility
,
setProgressBarVisibility
,
setRecentsScreenshotEnabled
,
setRequestedOrientation
,
setResult
,
setResult
,
setSecondaryProgress
,
setShouldDockBigOverlays
,
setShowWhenLocked
,
setTaskDescription
,
setTheme
,
setTitle
,
setTitle
,
setTitleColor
,
setTranslucent
,
setTurnScreenOn
,
setVisible
,
setVolumeControlStream
,
setVrModeEnabled
,
shouldDockBigOverlays
,
shouldShowRequestPermissionRationale
,
shouldUpRecreateTask
,
showAssist
,
showDialog
,
showDialog
,
showLockTaskEscapeMessage
,
startActionMode
,
startActionMode
,
startActivities
,
startActivities
,
startActivity
,
startActivity
,
startActivityForResult
,
startActivityForResult
,
startActivityFromChild
,
startActivityFromChild
,
startActivityFromFragment
,
startActivityFromFragment
,
startActivityIfNeeded
,
startActivityIfNeeded
,
startIntentSender
,
startIntentSender
,
startIntentSenderForResult
,
startIntentSenderForResult
,
startIntentSenderFromChild
,
startIntentSenderFromChild
,
startLocalVoiceInteraction
,
startLockTask
,
startManagingCursor
,
startNextMatchingActivity
,
startNextMatchingActivity
,
startPostponedEnterTransition
,
startSearch
,
stopLocalVoiceInteraction
,
stopLockTask
,
stopManagingCursor
,
takeKeyEvents
,
triggerSearch
,
unregisterActivityLifecycleCallbacks
,
unregisterComponentCallbacks
,
unregisterForContextMenu
,
unregisterScreenCaptureCallback
applyOverrideConfiguration
,
getAssets
,
getResources
,
getTheme
,
setTheme
bindIsolatedService
,
bindService
,
bindService
,
bindService
,
bindService
,
bindServiceAsUser
,
bindServiceAsUser
,
checkCallingOrSelfPermission
,
checkCallingOrSelfUriPermission
,
checkCallingOrSelfUriPermissions
,
checkCallingPermission
,
checkCallingUriPermission
,
checkCallingUriPermissions
,
checkPermission
,
checkSelfPermission
,
checkUriPermission
,
checkUriPermission
,
checkUriPermissions
,
clearWallpaper
,
createAttributionContext
,
createConfigurationContext
,
createContext
,
createContextForSplit
,
createDeviceContext
,
createDeviceProtectedStorageContext
,
createDisplayContext
,
createPackageContext
,
createWindowContext
,
createWindowContext
,
databaseList
,
deleteDatabase
,
deleteFile
,
deleteSharedPreferences
,
enforceCallingOrSelfPermission
,
enforceCallingOrSelfUriPermission
,
enforceCallingPermission
,
enforceCallingUriPermission
,
enforcePermission
,
enforceUriPermission
,
enforceUriPermission
,
fileList
,
getApplicationContext
,
getApplicationInfo
,
getAttributionSource
,
getAttributionTag
,
getBaseContext
,
getCacheDir
,
getClassLoader
,
getCodeCacheDir
,
getContentResolver
,
getDatabasePath
,
getDataDir
,
getDeviceId
,
getDir
,
getDisplay
,
getExternalCacheDir
,
getExternalCacheDirs
,
getExternalFilesDir
,
getExternalFilesDirs
,
getExternalMediaDirs
,
getFilesDir
,
getFileStreamPath
,
getMainExecutor
,
getMainLooper
,
getNoBackupFilesDir
,
getObbDir
,
getObbDirs
,
getOpPackageName
,
getPackageCodePath
,
getPackageManager
,
getPackageName
,
getPackageResourcePath
,
getParams
,
getSharedPreferences
,
getSystemServiceName
,
getWallpaper
,
getWallpaperDesiredMinimumHeight
,
getWallpaperDesiredMinimumWidth
,
grantUriPermission
,
isDeviceProtectedStorage
,
isRestricted
,
isUiContext
,
moveDatabaseFrom
,
moveSharedPreferencesFrom
,
openFileInput
,
openFileOutput
,
openOrCreateDatabase
,
openOrCreateDatabase
,
peekWallpaper
,
registerDeviceIdChangeListener
,
registerReceiver
,
registerReceiver
,
registerReceiver
,
registerReceiver
,
removeStickyBroadcast
,
removeStickyBroadcastAsUser
,
revokeSelfPermissionsOnKill
,
revokeUriPermission
,
revokeUriPermission
,
sendBroadcast
,
sendBroadcast
,
sendBroadcast
,
sendBroadcastAsUser
,
sendBroadcastAsUser
,
sendOrderedBroadcast
,
sendOrderedBroadcast
,
sendOrderedBroadcast
,
sendOrderedBroadcast
,
sendOrderedBroadcast
,
sendOrderedBroadcast
,
sendOrderedBroadcastAsUser
,
sendStickyBroadcast
,
sendStickyBroadcast
,
sendStickyBroadcastAsUser
,
sendStickyOrderedBroadcast
,
sendStickyOrderedBroadcastAsUser
,
setWallpaper
,
setWallpaper
,
startForegroundService
,
startInstrumentation
,
startService
,
stopService
,
unbindService
,
unregisterDeviceIdChangeListener
,
unregisterReceiver
,
updateServiceGroup
bindIsolatedService
,
getColor
,
getColorStateList
,
getDrawable
,
getString
,
getString
,
getSystemService
,
getText
,
obtainStyledAttributes
,
obtainStyledAttributes
,
obtainStyledAttributes
,
obtainStyledAttributes
,
revokeSelfPermissionOnKill
,
sendBroadcastWithMultiplePermissions
clone
,
equals
,
finalize
,
getClass
,
hashCode
,
notify
,
notifyAll
,
toString
,
wait
,
wait
,
wait
onPointerCaptureChanged
FlutterView
created by this activity.
This ID can be used to lookup
FlutterView
in the Android view hierarchy. For more,
see
View.findViewById(int)
.
Intent
that launches a
FlutterActivity
, which creates a
FlutterEngine
that executes a
main()
Dart entrypoint, and displays the "/" route as
Flutter's initial route.
Consider using the
withCachedEngine(String)
Intent
builder to control when
the
FlutterEngine
should be created in your application.
launchContext
- The launch context. e.g. An Activity.
FlutterActivity.NewEngineIntentBuilder
, which can be used to configure an
Intent
to
launch a
FlutterActivity
that internally creates a new
FlutterEngine
using the desired Dart entrypoint, initial route,
FlutterActivity.CachedEngineIntentBuilder
, which can be used to configure an
Intent
to launch a
FlutterActivity
that internally uses an existing
FlutterEngine
that is cached in
FlutterEngineCache
.
cachedEngineId
- A cached engine ID.
FlutterActivity.NewEngineInGroupIntentBuilder
, which can be used to configure an
Intent
to launch a
FlutterActivity
by internally creating a FlutterEngine from an
existing
FlutterEngineGroup
cached in a specified
FlutterEngineGroupCache
.
// Create a FlutterEngineGroup, such as in the onCreate method of the Application.
FlutterEngineGroup engineGroup = new FlutterEngineGroup(this);
FlutterEngineGroupCache.getInstance().put("my_cached_engine_group_id", engineGroup);
// Start a FlutterActivity with the FlutterEngineGroup by creating an intent with withNewEngineInGroup
Intent intent = FlutterActivity.withNewEngineInGroup("my_cached_engine_group_id")
.dartEntrypoint("custom_entrypoint")
.initialRoute("/custom/route")
.backgroundMode(BackgroundMode.transparent)
.build(context);
startActivity(intent);
engineGroupId
- A cached engine group ID.
FlutterEngine
.
This replaces the deprecated onBackPressed method override in order to support API 33's predictive back navigation feature.
The callback must be unregistered in order to prevent unpredictable behavior once outside the Flutter app.
This should be called when the activity is no longer in use to prevent unpredictable behavior such as being stuck and unable to press back.
PlatformPlugin.PlatformPluginDelegate
Relevant for registering and unregistering the app's OnBackInvokedCallback for the
Predictive Back feature, for example as in
FlutterActivity
.
setFrameworkHandlesBack
in interface
PlatformPlugin.PlatformPluginDelegate
FlutterEngine
and its subcomponents.
Calling will disconnect this activity's view from the Flutter renderer, disconnect this
activity from plugins'
ActivityControlSurface
, and stop system channel messages from
this activity.
After calling, this activity should be disposed immediately and not be re-used.
onRequestPermissionsResult
in class
Activity
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain an
Activity
reference as needed. This
reference is used by the delegate to instantiate a
FlutterView
, a
PlatformPlugin
, and to determine if the
Activity
is changing configurations.
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain a
Lifecycle
reference as needed. This
reference is used by the delegate to provide Flutter plugins with access to lifecycle events.
getLifecycle
in interface
androidx.lifecycle.LifecycleOwner
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain Flutter shell arguments when initializing
Flutter.
FlutterEngine
to use
within this
FlutterActivity
, or
null
if this
FlutterActivity
does not
want to use a cached
FlutterEngine
.
FlutterEngineGroup
to
use within this
FlutterActivity
, or
null
if this
FlutterActivity
does
not want to use a cached
FlutterEngineGroup
.
FlutterEngine
backing this
FlutterActivity
should outlive this
FlutterActivity
, or true to be destroyed when the
FlutterActivity
is destroyed.
The default value is
true
in cases where
FlutterActivity
created its own
FlutterEngine
, and
false
in cases where a cached
FlutterEngine
was provided.
This preference can be controlled with 2 methods:
FlutterActivityLaunchConfigs.EXTRA_DART_ENTRYPOINT
with the
launching
Intent
, or
<meta-data>
called
FlutterActivityLaunchConfigs.DART_ENTRYPOINT_META_DATA_KEY
within the Android manifest
definition for this
FlutterActivity
If both preferences are set, the
Intent
preference takes priority.
Subclasses may override this method to directly control the Dart entrypoint.
A value of null means do not pass any arguments to Dart's entrypoint function.
Subclasses may override this method to directly control the Dart entrypoint arguments.
Example value: "package:foo/bar.dart"
This preference can be controlled by setting a
<meta-data>
called
FlutterActivityLaunchConfigs.DART_ENTRYPOINT_URI_META_DATA_KEY
within the Android manifest
definition for this
FlutterActivity
.
A value of null means use the default root library.
Subclasses may override this method to directly control the Dart entrypoint uri.
This preference can be controlled with 2 methods:
FlutterActivityLaunchConfigs.EXTRA_INITIAL_ROUTE
with the
launching
Intent
, or
<meta-data>
called
FlutterActivityLaunchConfigs.INITIAL_ROUTE_META_DATA_KEY
for this
Activity
in
the Android manifest.
If both preferences are set, the
Intent
preference takes priority.
The reason that a
<meta-data>
preference is supported is because this
Activity
might be the very first
Activity
launched, which means the developer won't
have control over the incoming
Intent
.
Subclasses may override this method to directly control the initial route.
If this method returns null and the
shouldHandleDeeplinking
returns true, the
initial route is derived from the
Intent
through the Intent.getData() instead.
When this
FlutterActivity
is run by Flutter tooling and a data String is included in
the launching
Intent
, that data String is interpreted as an app bundle path.
When otherwise unspecified, the value is null, which defaults to the app bundle path defined
in
FlutterLoader.findAppBundlePath()
.
Subclasses may override this method to return a custom app bundle path.
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain the desired
RenderMode
that should be
used when instantiating a
FlutterView
.
FlutterActivityAndFragmentDelegate.Host
method that is used by
FlutterActivityAndFragmentDelegate
to obtain the desired
TransparencyMode
that should
be used when instantiating a
FlutterView
.
Activity
, which defaults to
FlutterActivityLaunchConfigs.BackgroundMode.opaque
.
FlutterEngine
.
This hook is where a cached
FlutterEngine
should be
provided, if a cached
FlutterEngine
is desired.
provideFlutterEngine
in interface
FlutterEngineProvider
context
- The current context. e.g. An activity.
FlutterEngine
that is owned by this
FlutterActivity
.
PackageManager.NameNotFoundException
- if a package with the given name cannot be found
on the system.
FlutterEngine
.
This method is called after
provideFlutterEngine(Context)
.
All plugins listed in the app's pubspec are registered in the base implementation of this method unless the FlutterEngine for this activity was externally created. To avoid the automatic plugin registration for implicitly created FlutterEngines, override this method without invoking super(). To keep automatic plugin registration and further configure the FlutterEngine, override this method, invoke super(), and then configure the FlutterEngine as desired.
configureFlutterEngine
in interface
FlutterEngineConfigurator
flutterEngine
- The Flutter engine.
configureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.
This method is called in
onDestroy()
.
cleanUpFlutterEngine
in interface
FlutterEngineConfigurator
flutterEngine
- The Flutter engine.
FlutterFragment
within this
Activity
automatically attaches its
FlutterEngine
to this
Activity
.
This property is controlled with a protected method instead of an
Intent
argument
because the only situation where changing this value would help, is a situation in which
FlutterActivity
is being subclassed to utilize a custom and/or cached
FlutterEngine
.
Defaults to
true
.
Control surfaces are used to provide Android resources and lifecycle events to plugins that
are attached to the
FlutterEngine
. If
shouldAttachEngineToActivity
is true, then this
FlutterActivity
will connect its
FlutterEngine
to itself, along with any plugins that are
registered with that
FlutterEngine
. This allows plugins to
access the
Activity
, as well as receive
Activity
-specific calls, e.g.
Activity.onNewIntent(Intent)
. If
shouldAttachEngineToActivity
is false, then this
FlutterActivity
will not automatically manage the connection between its
FlutterEngine
and itself. In this case, plugins will not be offered a reference to an
Activity
or its OS hooks.
Returning false from this method does not preclude a
FlutterEngine
from being attaching to a
FlutterActivity
-
it just prevents the attachment from happening automatically. A developer can choose to
subclass
FlutterActivity
and then invoke
ActivityControlSurface.attachToActivity(ExclusiveAppComponent, Lifecycle)
and
ActivityControlSurface.detachFromActivity()
at the desired times.
One reason that a developer might choose to manually manage the relationship between the
Activity
and
FlutterEngine
is if the developer
wants to move the
FlutterEngine
somewhere else. For example, a developer might want the
FlutterEngine
to outlive this
FlutterActivity
so
that it can be used later in a different
Activity
. To accomplish this, the
FlutterEngine
may need to be disconnected from this
FlutterActivity
at an unusual time, preventing this
FlutterActivity
from correctly
managing the relationship between the
FlutterEngine
and
itself.
Intent
automatically if the
getInitialRoute
returns null.
The default implementation looks
<meta-data>
called
FlutterActivityLaunchConfigs.HANDLE_DEEPLINKING_META_DATA_KEY
within the Android manifest
definition for this
FlutterActivity
.
Return
false
means the host application dispatches these app lifecycle events, while
return
true
means the engine dispatches these events.
Defaults to
true
.
FlutterView
to the engine.
Returning
false
means that the task of attaching the
FlutterView
to the
engine will be taken over by the host application.
Defaults to
true
.
PlatformPlugin.PlatformPluginDelegate
popSystemNavigator
in interface
PlatformPlugin.PlatformPluginDelegate
OnBackPressedDispatcher
will be executed.
健身的鸡蛋面 · 北京市海淀区人民政府 4 月前 |