Class FlutterFragmentActivity
- java.lang.Object
-
- android.content.Context
-
- android.content.ContextWrapper
-
- android.view.ContextThemeWrapper
-
- android.app.Activity
-
- androidx.core.app.ComponentActivity
-
- androidx.activity.ComponentActivity
-
- androidx.fragment.app.FragmentActivity
-
- io.flutter.embedding.android.FlutterFragmentActivity
-
- All Implemented Interfaces:
ComponentCallbacks
,ComponentCallbacks2
,KeyEvent.Callback
,LayoutInflater.Factory
,LayoutInflater.Factory2
,View.OnCreateContextMenuListener
,Window.Callback
,androidx.activity.OnBackPressedDispatcherOwner
,androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback
,androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator
,androidx.core.view.KeyEventDispatcher.Component
,androidx.lifecycle.LifecycleOwner
,androidx.lifecycle.ViewModelStoreOwner
,androidx.savedstate.SavedStateRegistryOwner
,FlutterEngineConfigurator
,FlutterEngineProvider
,SplashScreenProvider
public class FlutterFragmentActivity extends androidx.fragment.app.FragmentActivity implements SplashScreenProvider, FlutterEngineProvider, FlutterEngineConfigurator
A FlutterActivity
that is based uponFragmentActivity
.FlutterFragmentActivity
exists because there are some Android APIs in the ecosystem that only accept aFragmentActivity
. If aFragmentActivity
is not required, you should consider using a regularFlutterActivity
instead, becauseFlutterActivity
is considered to be the standard, canonical implementation of a FlutterActivity
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FlutterFragmentActivity.CachedEngineIntentBuilder
Builder to create anIntent
that launches aFlutterFragmentActivity
with an existingFlutterEngine
that is cached inFlutterEngineCache
.static class
FlutterFragmentActivity.NewEngineIntentBuilder
Builder to create anIntent
that launches aFlutterFragmentActivity
with a newFlutterEngine
and the desired configuration.
-
Field Summary
Fields Modifier and Type Field Description static int
FRAGMENT_CONTAINER_ID
-
Fields inherited from class android.app.Activity
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
-
Fields inherited from class android.content.Context
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_OOM_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_IMPORTANT, BIND_INCLUDE_CAPABILITIES, BIND_NOT_FOREGROUND, BIND_NOT_PERCEPTIBLE, 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, CROSS_PROFILE_APPS_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, HARDWARE_PROPERTIES_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_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, PEOPLE_SERVICE, PERFORMANCE_HINT_SERVICE, POWER_SERVICE, PRINT_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RESTRICTIONS_SERVICE, ROLE_SERVICE, SEARCH_SERVICE, SENSOR_SERVICE, SHORTCUT_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, UI_MODE_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_MANAGER_SERVICE, VIBRATOR_SERVICE, VPN_MANAGEMENT_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_SERVICE, WINDOW_SERVICE
-
Fields inherited from interface android.content.ComponentCallbacks2
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
-
-
Constructor Summary
Constructors Constructor Description FlutterFragmentActivity()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanUpFlutterEngine(FlutterEngine flutterEngine)
Hook for the host to cleanup references that were established inconfigureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.void
configureFlutterEngine(FlutterEngine flutterEngine)
Hook for subclasses to easily configure aFlutterEngine
.static Intent
createDefaultIntent(Context launchContext)
Creates anIntent
that launches aFlutterFragmentActivity
, which executes amain()
Dart entrypoint, and displays the "/" route as Flutter's initial route.protected FlutterFragment
createFlutterFragment()
Creates the instance of theFlutterFragment
that thisFlutterFragmentActivity
displays.protected String
getAppBundlePath()
A custom path to the bundle that contains this Flutter app's resources, e.g., Dart code snapshots.protected FlutterActivityLaunchConfigs.BackgroundMode
getBackgroundMode()
The desired window background mode of thisActivity
, which defaults toFlutterActivityLaunchConfigs.BackgroundMode.opaque
.protected String
getCachedEngineId()
Returns the ID of a statically cachedFlutterEngine
to use within thisFlutterFragmentActivity
, ornull
if thisFlutterFragmentActivity
does not want to use a cachedFlutterEngine
.List<String>
getDartEntrypointArgs()
The Dart entrypoint arguments will be passed as a list of string to Dart's entrypoint function.String
getDartEntrypointFunctionName()
The Dart entrypoint that will be executed as soon as the Dart snapshot is loaded.String
getDartEntrypointLibraryUri()
The Dart library URI for the entrypoint that will be executed as soon as the Dart snapshot is loaded.protected FlutterEngine
getFlutterEngine()
protected String
getInitialRoute()
The initial route that a Flutter app will render upon loading and executing its Dart code.protected Bundle
getMetaData()
Retrieves the meta data specified in the AndroidManifest.xml.protected RenderMode
getRenderMode()
protected void
onActivityResult(int requestCode, int resultCode, Intent data)
void
onBackPressed()
protected void
onCreate(Bundle savedInstanceState)
protected void
onNewIntent(Intent intent)
void
onPostResume()
void
onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
void
onTrimMemory(int level)
void
onUserLeaveHint()
FlutterEngine
provideFlutterEngine(Context context)
Hook for subclasses to easily provide a customFlutterEngine
.protected FrameLayout
provideRootLayout(Context context)
Returns aFrameLayout
that is used as the content view of this activity.SplashScreen
provideSplashScreen()
Provides aSplashScreen
to display while Flutter initializes and renders its first frame.protected boolean
shouldAttachEngineToActivity()
Hook for subclasses to control whether or not theFlutterFragment
within thisActivity
automatically attaches itsFlutterEngine
to thisActivity
.boolean
shouldDestroyEngineWithHost()
Returns false if theFlutterEngine
backing thisFlutterFragmentActivity
should outlive thisFlutterFragmentActivity
, or true to be destroyed when theFlutterFragmentActivity
is destroyed.protected boolean
shouldHandleDeeplinking()
Whether to handle the deeplinking from theIntent
automatically if thegetInitialRoute
returns null.static FlutterFragmentActivity.CachedEngineIntentBuilder
withCachedEngine(String cachedEngineId)
Creates aFlutterFragmentActivity.CachedEngineIntentBuilder
, which can be used to configure anIntent
to launch aFlutterFragmentActivity
that internally uses an existingFlutterEngine
that is cached inFlutterEngineCache
.static FlutterFragmentActivity.NewEngineIntentBuilder
withNewEngine()
Creates anFlutterFragmentActivity.NewEngineIntentBuilder
, which can be used to configure anIntent
to launch aFlutterFragmentActivity
that internally creates a newFlutterEngine
using the desired Dart entrypoint, initial route, etc.-
Methods inherited from class androidx.fragment.app.FragmentActivity
dump, getSupportFragmentManager, getSupportLoaderManager, onAttachFragment, onConfigurationChanged, onCreatePanelMenu, onCreateView, onCreateView, onDestroy, onLowMemory, onMenuItemSelected, onMultiWindowModeChanged, onPanelClosed, onPause, onPictureInPictureModeChanged, onPrepareOptionsPanel, onPreparePanel, onResume, onResumeFragments, onSaveInstanceState, onStart, onStateNotSaved, onStop, setEnterSharedElementCallback, setExitSharedElementCallback, startActivityForResult, startActivityForResult, startActivityFromFragment, startActivityFromFragment, startIntentSenderForResult, startIntentSenderForResult, startIntentSenderFromFragment, supportFinishAfterTransition, supportInvalidateOptionsMenu, supportPostponeEnterTransition, supportStartPostponedEnterTransition, validateRequestPermissionsRequestCode
-
Methods inherited from class androidx.activity.ComponentActivity
getLastCustomNonConfigurationInstance, getLifecycle, getOnBackPressedDispatcher, getSavedStateRegistry, getViewModelStore, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance
-
Methods inherited from class androidx.core.app.ComponentActivity
dispatchKeyEvent, dispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEvent
-
Methods inherited from class android.app.Activity
addContentView, attachBaseContext, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, enterPictureInPictureMode, enterPictureInPictureMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, 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, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelView, onCreateThumbnail, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onMenuOpened, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onOptionsItemSelected, onOptionsMenuClosed, onPerformDirectAction, onPictureInPictureModeChanged, onPictureInPictureRequested, onPictureInPictureUiStateChanged, onPostCreate, onPostCreate, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRestart, onRestoreInstanceState, onRestoreInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onTitleChanged, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onUserInteraction, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, 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, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTranslucent, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu
-
Methods inherited from class android.view.ContextThemeWrapper
applyOverrideConfiguration, getAssets, getResources, getTheme, setTheme
-
Methods inherited from class android.content.ContextWrapper
bindIsolatedService, bindService, bindService, bindServiceAsUser, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingOrSelfUriPermissions, checkCallingPermission, checkCallingUriPermission, checkCallingUriPermissions, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, checkUriPermissions, clearWallpaper, createAttributionContext, createConfigurationContext, createContext, createContextForSplit, 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, 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, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup
-
Methods inherited from class android.content.Context
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, sendBroadcastWithMultiplePermissions, unregisterComponentCallbacks
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface android.view.Window.Callback
onPointerCaptureChanged
-
-
-
-
Method Detail
-
createDefaultIntent
@NonNull public static Intent createDefaultIntent(@NonNull Context launchContext)
Creates anIntent
that launches aFlutterFragmentActivity
, which executes amain()
Dart entrypoint, and displays the "/" route as Flutter's initial route.
-
withNewEngine
@NonNull public static FlutterFragmentActivity.NewEngineIntentBuilder withNewEngine()
Creates anFlutterFragmentActivity.NewEngineIntentBuilder
, which can be used to configure anIntent
to launch aFlutterFragmentActivity
that internally creates a newFlutterEngine
using the desired Dart entrypoint, initial route, etc.
-
withCachedEngine
@NonNull public static FlutterFragmentActivity.CachedEngineIntentBuilder withCachedEngine(@NonNull String cachedEngineId)
Creates aFlutterFragmentActivity.CachedEngineIntentBuilder
, which can be used to configure anIntent
to launch aFlutterFragmentActivity
that internally uses an existingFlutterEngine
that is cached inFlutterEngineCache
.
-
onCreate
protected void onCreate(@Nullable Bundle savedInstanceState)
- Overrides:
onCreate
in classandroidx.fragment.app.FragmentActivity
-
provideSplashScreen
@Nullable public SplashScreen provideSplashScreen()
Description copied from interface:SplashScreenProvider
Provides aSplashScreen
to display while Flutter initializes and renders its first frame.- Specified by:
provideSplashScreen
in interfaceSplashScreenProvider
- Returns:
- The splash screen.
-
createFlutterFragment
@NonNull protected FlutterFragment createFlutterFragment()
Creates the instance of theFlutterFragment
that thisFlutterFragmentActivity
displays.Subclasses may override this method to return a specialization of
FlutterFragment
.
-
onPostResume
public void onPostResume()
- Overrides:
onPostResume
in classandroidx.fragment.app.FragmentActivity
-
onNewIntent
protected void onNewIntent(@NonNull Intent intent)
- Overrides:
onNewIntent
in classandroidx.fragment.app.FragmentActivity
-
onBackPressed
public void onBackPressed()
- Overrides:
onBackPressed
in classandroidx.activity.ComponentActivity
-
onRequestPermissionsResult
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
- Specified by:
onRequestPermissionsResult
in interfaceandroidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback
- Overrides:
onRequestPermissionsResult
in classandroidx.fragment.app.FragmentActivity
-
onUserLeaveHint
public void onUserLeaveHint()
- Overrides:
onUserLeaveHint
in classActivity
-
onTrimMemory
public void onTrimMemory(int level)
- Specified by:
onTrimMemory
in interfaceComponentCallbacks2
- Overrides:
onTrimMemory
in classActivity
-
onActivityResult
protected void onActivityResult(int requestCode, int resultCode, Intent data)
- Overrides:
onActivityResult
in classandroidx.fragment.app.FragmentActivity
-
getFlutterEngine
@Nullable protected FlutterEngine getFlutterEngine()
-
shouldDestroyEngineWithHost
public boolean shouldDestroyEngineWithHost()
Returns false if theFlutterEngine
backing thisFlutterFragmentActivity
should outlive thisFlutterFragmentActivity
, or true to be destroyed when theFlutterFragmentActivity
is destroyed.The default value is
true
in cases whereFlutterFragmentActivity
created its ownFlutterEngine
, andfalse
in cases where a cachedFlutterEngine
was provided.
-
shouldAttachEngineToActivity
protected boolean shouldAttachEngineToActivity()
Hook for subclasses to control whether or not theFlutterFragment
within thisActivity
automatically attaches itsFlutterEngine
to thisActivity
.For an explanation of why this control exists, see
FlutterFragment.shouldAttachEngineToActivity()
.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 whichFlutterFragmentActivity
is being subclassed to utilize a custom and/or cachedFlutterEngine
.Defaults to
true
.
-
shouldHandleDeeplinking
protected boolean shouldHandleDeeplinking()
Whether to handle the deeplinking from theIntent
automatically if thegetInitialRoute
returns null.The default implementation looks
<meta-data>
calledFlutterActivityLaunchConfigs.HANDLE_DEEPLINKING_META_DATA_KEY
within the Android manifest definition for thisFlutterFragmentActivity
.
-
provideFlutterEngine
@Nullable public FlutterEngine provideFlutterEngine(@NonNull Context context)
Hook for subclasses to easily provide a customFlutterEngine
.- Specified by:
provideFlutterEngine
in interfaceFlutterEngineProvider
- Parameters:
context
- The current context. e.g. An activity.- Returns:
- The Flutter engine.
-
configureFlutterEngine
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine)
Hook for subclasses to easily configure aFlutterEngine
.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.
- Specified by:
configureFlutterEngine
in interfaceFlutterEngineConfigurator
- Parameters:
flutterEngine
- The Flutter engine.
-
cleanUpFlutterEngine
public void cleanUpFlutterEngine(@NonNull FlutterEngine flutterEngine)
Hook for the host to cleanup references that were established inconfigureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.This method is called in
FragmentActivity.onDestroy()
.- Specified by:
cleanUpFlutterEngine
in interfaceFlutterEngineConfigurator
- Parameters:
flutterEngine
- The Flutter engine.
-
getAppBundlePath
@NonNull protected String getAppBundlePath()
A custom path to the bundle that contains this Flutter app's resources, e.g., Dart code snapshots.When this
FlutterFragmentActivity
is run by Flutter tooling and a data String is included in the launchingIntent
, 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.
-
getMetaData
@Nullable protected Bundle getMetaData() throws PackageManager.NameNotFoundException
Retrieves the meta data specified in the AndroidManifest.xml.
-
getDartEntrypointFunctionName
@NonNull public String getDartEntrypointFunctionName()
The Dart entrypoint that will be executed as soon as the Dart snapshot is loaded.This preference can be controlled by setting a
<meta-data>
calledFlutterActivityLaunchConfigs.DART_ENTRYPOINT_META_DATA_KEY
within the Android manifest definition for thisFlutterFragmentActivity
.Subclasses may override this method to directly control the Dart entrypoint.
-
getDartEntrypointArgs
@Nullable public List<String> getDartEntrypointArgs()
The Dart entrypoint arguments will be passed as a list of string to Dart's entrypoint function.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.
-
getDartEntrypointLibraryUri
@Nullable public String getDartEntrypointLibraryUri()
The Dart library URI for the entrypoint that will be executed as soon as the Dart snapshot is loaded.Example value: "package:foo/bar.dart"
This preference can be controlled by setting a
<meta-data>
calledFlutterActivityLaunchConfigs.DART_ENTRYPOINT_URI_META_DATA_KEY
within the Android manifest definition for thisFlutterFragmentActivity
.A value of null means use the default root library.
Subclasses may override this method to directly control the Dart entrypoint uri.
-
getInitialRoute
protected String getInitialRoute()
The initial route that a Flutter app will render upon loading and executing its Dart code.This preference can be controlled with 2 methods:
- Pass a boolean as
FlutterActivityLaunchConfigs.EXTRA_INITIAL_ROUTE
with the launchingIntent
, or - Set a
<meta-data>
calledFlutterActivityLaunchConfigs.INITIAL_ROUTE_META_DATA_KEY
for thisActivity
in the Android manifest.
Intent
preference takes priority.The reason that a
<meta-data>
preference is supported is because thisActivity
might be the very firstActivity
launched, which means the developer won't have control over the incomingIntent
.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 theIntent
through the Intent.getData() instead. - Pass a boolean as
-
getCachedEngineId
@Nullable protected String getCachedEngineId()
Returns the ID of a statically cachedFlutterEngine
to use within thisFlutterFragmentActivity
, ornull
if thisFlutterFragmentActivity
does not want to use a cachedFlutterEngine
.
-
getBackgroundMode
@NonNull protected FlutterActivityLaunchConfigs.BackgroundMode getBackgroundMode()
The desired window background mode of thisActivity
, which defaults toFlutterActivityLaunchConfigs.BackgroundMode.opaque
.
-
getRenderMode
@NonNull protected RenderMode getRenderMode()
Returns the desiredRenderMode
for theFlutterView
displayed in thisFlutterFragmentActivity
.That is,
RenderMode.surface
ifgetBackgroundMode()
isFlutterActivityLaunchConfigs.BackgroundMode.opaque
orRenderMode.texture
otherwise.
-
provideRootLayout
@NonNull protected FrameLayout provideRootLayout(Context context)
Returns aFrameLayout
that is used as the content view of this activity.
-
-