public class FlutterFragmentActivity extends androidx.fragment.app.FragmentActivity implements SplashScreenProvider, FlutterEngineProvider, FlutterEngineConfigurator
Activity
that is based upon FragmentActivity
.
FlutterFragmentActivity
exists because there are some Android APIs in the ecosystem
that only accept a FragmentActivity
. If a FragmentActivity
is not required, you
should consider using a regular FlutterActivity
instead, because FlutterActivity
is considered to be the standard, canonical implementation of a Flutter Activity
.
Modifier and Type | Class and Description |
---|---|
static class |
FlutterFragmentActivity.CachedEngineIntentBuilder
Builder to create an
Intent that launches a FlutterFragmentActivity with an
existing FlutterEngine that is cached in FlutterEngineCache . |
static class |
FlutterFragmentActivity.NewEngineIntentBuilder
Builder to create an
Intent that launches a FlutterFragmentActivity with a new
FlutterEngine and the desired configuration. |
androidx.core.app.ComponentActivity.ExtraData
Activity.TranslucentConversionListener
Context.BindServiceFlags, Context.CreatePackageOptions, Context.DatabaseMode, Context.FileMode, Context.PreferencesMode, Context.RegisterReceiverFlags, Context.ServiceName
ComponentCallbacks2.TrimMemoryLevel
DEFAULT_KEYS_DIALER, DEFAULT_KEYS_DISABLE, DEFAULT_KEYS_SEARCH_GLOBAL, DEFAULT_KEYS_SEARCH_LOCAL, DEFAULT_KEYS_SHORTCUT, DONT_FINISH_TASK_WITH_ACTIVITY, FINISH_TASK_WITH_ACTIVITY, FINISH_TASK_WITH_ROOT_ACTIVITY, FOCUSED_STATE_SET, RESULT_CANCELED, RESULT_FIRST_USER, RESULT_OK
ACCESSIBILITY_SERVICE, ACCOUNT_SERVICE, ACTIVITY_SERVICE, ALARM_SERVICE, APP_OPS_SERVICE, APPWIDGET_SERVICE, AUDIO_SERVICE, AUTOFILL_MANAGER_SERVICE, BACKUP_SERVICE, BATTERY_SERVICE, BIND_ABOVE_CLIENT, BIND_ADJUST_WITH_ACTIVITY, BIND_ALLOW_INSTANT, BIND_ALLOW_OOM_MANAGEMENT, BIND_ALLOW_WHITELIST_MANAGEMENT, BIND_AUTO_CREATE, BIND_DEBUG_UNBIND, BIND_EXTERNAL_SERVICE, BIND_FOREGROUND_SERVICE, BIND_FOREGROUND_SERVICE_WHILE_AWAKE, BIND_IMPORTANT, BIND_IMPORTANT_BACKGROUND, BIND_NOT_FOREGROUND, BIND_NOT_VISIBLE, BIND_SHOWING_UI, BIND_TREAT_LIKE_ACTIVITY, BIND_VISIBLE, BIND_WAIVE_PRIORITY, BLUETOOTH_SERVICE, CAMERA_SERVICE, CAPTIONING_SERVICE, CARRIER_CONFIG_SERVICE, CLIPBOARD_SERVICE, COMPANION_DEVICE_SERVICE, CONNECTIVITY_SERVICE, CONSUMER_IR_SERVICE, CONTEXT_CREDENTIAL_PROTECTED_STORAGE, CONTEXT_DEVICE_PROTECTED_STORAGE, CONTEXT_IGNORE_SECURITY, CONTEXT_INCLUDE_CODE, CONTEXT_REGISTER_PACKAGE, CONTEXT_RESTRICTED, CONTEXTHUB_SERVICE, COUNTRY_DETECTOR, CROSS_PROFILE_APPS_SERVICE, DEVICE_IDENTIFIERS_SERVICE, DEVICE_IDLE_CONTROLLER, DEVICE_POLICY_SERVICE, DISPLAY_SERVICE, DOWNLOAD_SERVICE, DROPBOX_SERVICE, ETHERNET_SERVICE, EUICC_CARD_SERVICE, EUICC_SERVICE, FINGERPRINT_SERVICE, GATEKEEPER_SERVICE, HARDWARE_PROPERTIES_SERVICE, HDMI_CONTROL_SERVICE, INCIDENT_SERVICE, INPUT_METHOD_SERVICE, INPUT_SERVICE, IPSEC_SERVICE, JOB_SCHEDULER_SERVICE, KEYGUARD_SERVICE, LAUNCHER_APPS_SERVICE, LAYOUT_INFLATER_SERVICE, LOCATION_SERVICE, LOWPAN_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_POLICY_SERVICE, NETWORK_SCORE_SERVICE, NETWORK_STATS_SERVICE, NETWORK_WATCHLIST_SERVICE, NETWORKMANAGEMENT_SERVICE, NFC_SERVICE, NOTIFICATION_SERVICE, NSD_SERVICE, OEM_LOCK_SERVICE, OVERLAY_SERVICE, PERSISTENT_DATA_BLOCK_SERVICE, POWER_SERVICE, PRINT_SERVICE, RADIO_SERVICE, RECEIVER_VISIBLE_TO_INSTANT_APPS, RECOVERY_SERVICE, RESTRICTIONS_SERVICE, SEARCH_SERVICE, SECURE_ELEMENT_SERVICE, SENSOR_SERVICE, SERIAL_SERVICE, SHORTCUT_SERVICE, SIP_SERVICE, SLICE_SERVICE, SOUND_TRIGGER_SERVICE, STATS_COMPANION_SERVICE, STATS_MANAGER, STATUS_BAR_SERVICE, STORAGE_SERVICE, STORAGE_STATS_SERVICE, SYSTEM_HEALTH_SERVICE, SYSTEM_UPDATE_SERVICE, TELECOM_SERVICE, TELEPHONY_SERVICE, TELEPHONY_SUBSCRIPTION_SERVICE, TEXT_CLASSIFICATION_SERVICE, TEXT_SERVICES_MANAGER_SERVICE, TIME_ZONE_RULES_MANAGER_SERVICE, TRUST_SERVICE, TV_INPUT_SERVICE, UI_MODE_SERVICE, UPDATE_LOCK_SERVICE, USAGE_STATS_SERVICE, USB_SERVICE, USER_SERVICE, VIBRATOR_SERVICE, VOICE_INTERACTION_MANAGER_SERVICE, VR_SERVICE, WALLPAPER_SERVICE, WIFI_AWARE_SERVICE, WIFI_P2P_SERVICE, WIFI_RTT_RANGING_SERVICE, WIFI_RTT_SERVICE, WIFI_SCANNING_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
Constructor and Description |
---|
FlutterFragmentActivity() |
Modifier and Type | Method and Description |
---|---|
void |
cleanUpFlutterEngine(FlutterEngine flutterEngine)
Hook for the host to cleanup references that were established in
configureFlutterEngine(FlutterEngine) before the host is destroyed or detached. |
void |
configureFlutterEngine(FlutterEngine flutterEngine)
Hook for subclasses to easily configure a
FlutterEngine . |
static Intent |
createDefaultIntent(Context launchContext)
Creates an
Intent that launches a FlutterFragmentActivity , which executes a
main() Dart entrypoint, and displays the "/" route as Flutter's initial route. |
protected FlutterFragment |
createFlutterFragment()
Creates the instance of the
FlutterFragment that this FlutterFragmentActivity
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 this
Activity , which defaults to FlutterActivityLaunchConfigs.BackgroundMode.opaque . |
protected String |
getCachedEngineId()
Returns the ID of a statically cached
FlutterEngine to use within this FlutterFragmentActivity , or null if this FlutterFragmentActivity does not want
to use a cached FlutterEngine . |
String |
getDartEntrypointFunctionName()
The Dart 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 custom
FlutterEngine . |
protected FrameLayout |
provideRootLayout(Context context)
Returns a
FrameLayout that is used as the content view of this activity. |
SplashScreen |
provideSplashScreen()
Provides a
SplashScreen to display while Flutter initializes and renders its first
frame. |
protected boolean |
shouldAttachEngineToActivity()
Hook for subclasses to control whether or not the
FlutterFragment within this Activity automatically attaches its FlutterEngine to this Activity . |
boolean |
shouldDestroyEngineWithHost()
Returns false if the
FlutterEngine backing this FlutterFragmentActivity should
outlive this FlutterFragmentActivity , or true to be destroyed when the FlutterFragmentActivity is destroyed. |
protected boolean |
shouldHandleDeeplinking()
Whether to handle the deeplinking from the
Intent automatically if the getInitialRoute returns null. |
static FlutterFragmentActivity.CachedEngineIntentBuilder |
withCachedEngine(String cachedEngineId)
Creates a
FlutterFragmentActivity.CachedEngineIntentBuilder , which can be used to configure an Intent
to launch a FlutterFragmentActivity that internally uses an existing FlutterEngine that is cached in FlutterEngineCache . |
static FlutterFragmentActivity.NewEngineIntentBuilder |
withNewEngine()
Creates an
FlutterFragmentActivity.NewEngineIntentBuilder , which can be used to
configure an Intent to launch a FlutterFragmentActivity that internally creates
a new FlutterEngine using the desired Dart entrypoint, initial route, etc. |
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
getLastCustomNonConfigurationInstance, getLifecycle, getOnBackPressedDispatcher, getSavedStateRegistry, getViewModelStore, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance
dispatchKeyEvent, dispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEvent
addContentView, attachBaseContext, autofillClientAuthenticate, autofillClientDispatchUnhandledKey, autofillClientFindViewByAccessibilityIdTraversal, autofillClientFindViewByAutofillIdTraversal, autofillClientFindViewsByAutofillIdTraversal, autofillClientGetActivityToken, autofillClientGetComponentName, autofillClientGetNextAutofillId, autofillClientGetViewVisibility, autofillClientIsCompatibilityModeEnabled, autofillClientIsFillUiShowing, autofillClientIsVisibleForAutofill, autofillClientRequestHideFillUi, autofillClientRequestShowFillUi, autofillClientResetableStateAvailable, autofillClientRunOnUiThread, canStartActivityForResult, closeContextMenu, closeOptionsMenu, convertFromTranslucent, convertToTranslucent, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchEnterAnimationComplete, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, enterPictureInPictureMode, enterPictureInPictureMode, enterPictureInPictureMode, enterPictureInPictureModeIfPossible, exitFreeformMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getActivityThread, getActivityToken, getApplication, getAutofillClient, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, getNextAutofillId, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isBackgroundVisibleBehind, isChangingConfigurations, isChild, isDestroyed, isDisablingEnterExitEventForAutofill, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLocalVoiceInteractionSupported, isOverlayWithDecorCaptionEnabled, isResumed, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onApplyThemeResource, onAttachedToWindow, onAttachFragment, onBackgroundVisibleBehindChanged, onChildTitleChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelView, onCreateThumbnail, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onMenuOpened, onMovedToDisplay, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onNewActivityOptions, onOptionsItemSelected, onOptionsMenuClosed, onPictureInPictureModeChanged, onPostCreate, onPostCreate, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRestart, onRestoreInstanceState, onRestoreInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onTitleChanged, onTouchEvent, onTrackballEvent, onUserInteraction, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowDismissed, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerForContextMenu, registerRemoteAnimations, releaseInstance, removeDialog, reportFullyDrawn, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setContentView, setContentView, setContentView, setDefaultKeyMode, setDisablePreviewScreenshots, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setIntent, setMediaController, setOverlayWithDecorCaptionEnabled, setPersistent, setPictureInPictureArgs, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityAsCaller, startActivityAsUser, startActivityAsUser, startActivityAsUserFromFragment, startActivityForResult, startActivityForResultAsUser, startActivityForResultAsUser, startActivityForResultAsUser, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startIntentSenderFromChildFragment, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterForContextMenu
applyOverrideConfiguration, getAssets, getOverrideConfiguration, getResources, getTheme, getThemeResId
bindService, bindServiceAsUser, bindServiceAsUser, canLoadUnsafeResources, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingPermission, checkCallingUriPermission, checkPermission, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, checkUriPermission, clearWallpaper, createApplicationContext, createConfigurationContext, createContextForSplit, createCredentialProtectedStorageContext, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, createPackageContextAsUser, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getBaseContext, getBasePackageName, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDatabasePath, getDataDir, getDir, getDisplay, getDisplayAdjustments, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFilesDir, getFileStreamPath, getIApplicationThread, getMainExecutor, getMainLooper, getMainThreadHandler, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getPreloadsFileCache, getServiceDispatcher, getSharedPreferences, getSharedPreferences, getSharedPreferencesPath, getSystemServiceName, getUserId, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isAutofillCompatibilityEnabled, isCredentialProtectedStorage, isDeviceProtectedStorage, isRestricted, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, registerReceiverAsUser, reloadSharedPreferences, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendBroadcastAsUser, sendBroadcastAsUser, sendBroadcastAsUserMultiplePermissions, sendBroadcastMultiplePermissions, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendOrderedBroadcastAsUser, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setAutofillClient, setAutofillCompatibilityEnabled, setWallpaper, setWallpaper, startActivitiesAsUser, startForegroundService, startForegroundServiceAsUser, startInstrumentation, startService, startServiceAsUser, stopService, stopServiceAsUser, unbindService, unregisterReceiver, updateDisplay
assertRuntimeOverlayThemable, getColor, getColorStateList, getDrawable, getSharedPrefsFile, getString, getString, getSystemService, getText, getUser, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, unregisterComponentCallbacks
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onPointerCaptureChanged
@NonNull public static Intent createDefaultIntent(@NonNull Context launchContext)
Intent
that launches a FlutterFragmentActivity
, which executes a
main()
Dart entrypoint, and displays the "/" route as Flutter's initial route.@NonNull public static FlutterFragmentActivity.NewEngineIntentBuilder withNewEngine()
FlutterFragmentActivity.NewEngineIntentBuilder
, which can be used to
configure an Intent
to launch a FlutterFragmentActivity
that internally creates
a new FlutterEngine
using the desired Dart entrypoint, initial route, etc.@NonNull public static FlutterFragmentActivity.CachedEngineIntentBuilder withCachedEngine(@NonNull String cachedEngineId)
FlutterFragmentActivity.CachedEngineIntentBuilder
, which can be used to configure an Intent
to launch a FlutterFragmentActivity
that internally uses an existing FlutterEngine
that is cached in FlutterEngineCache
.protected void onCreate(@Nullable Bundle savedInstanceState)
onCreate
in class androidx.fragment.app.FragmentActivity
@Nullable public SplashScreen provideSplashScreen()
SplashScreenProvider
SplashScreen
to display while Flutter initializes and renders its first
frame.provideSplashScreen
in interface SplashScreenProvider
@NonNull protected FlutterFragment createFlutterFragment()
FlutterFragment
that this FlutterFragmentActivity
displays.
Subclasses may override this method to return a specialization of FlutterFragment
.
public void onPostResume()
onPostResume
in class androidx.fragment.app.FragmentActivity
protected void onNewIntent(@NonNull Intent intent)
onNewIntent
in class androidx.fragment.app.FragmentActivity
public void onBackPressed()
onBackPressed
in class androidx.activity.ComponentActivity
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
onRequestPermissionsResult
in interface androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback
onRequestPermissionsResult
in class androidx.fragment.app.FragmentActivity
public void onUserLeaveHint()
onUserLeaveHint
in class Activity
public void onTrimMemory(int level)
onTrimMemory
in interface ComponentCallbacks2
onTrimMemory
in class Activity
protected void onActivityResult(int requestCode, int resultCode, Intent data)
onActivityResult
in class androidx.fragment.app.FragmentActivity
@Nullable protected FlutterEngine getFlutterEngine()
public boolean shouldDestroyEngineWithHost()
FlutterEngine
backing this FlutterFragmentActivity
should
outlive this FlutterFragmentActivity
, or true to be destroyed when the FlutterFragmentActivity
is destroyed.
The default value is true
in cases where FlutterFragmentActivity
created its
own FlutterEngine
, and false
in cases where a cached FlutterEngine
was
provided.
protected boolean shouldAttachEngineToActivity()
FlutterFragment
within this Activity
automatically attaches its FlutterEngine
to this Activity
.
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 which FlutterFragmentActivity
is being subclassed to utilize a custom and/or cached FlutterEngine
.
Defaults to true
.
protected boolean shouldHandleDeeplinking()
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 FlutterFragmentActivity
.
@Nullable public FlutterEngine provideFlutterEngine(@NonNull Context context)
FlutterEngine
.provideFlutterEngine
in interface FlutterEngineProvider
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine)
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. To avoid automatic plugin registration, 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
public void cleanUpFlutterEngine(@NonNull FlutterEngine flutterEngine)
configureFlutterEngine(FlutterEngine)
before the host is destroyed or detached.
This method is called in FragmentActivity.onDestroy()
.
cleanUpFlutterEngine
in interface FlutterEngineConfigurator
@NonNull protected String getAppBundlePath()
When this FlutterFragmentActivity
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.
@Nullable protected Bundle getMetaData() throws PackageManager.NameNotFoundException
@NonNull public String getDartEntrypointFunctionName()
This preference can be controlled by setting a <meta-data>
called FlutterActivityLaunchConfigs.DART_ENTRYPOINT_META_DATA_KEY
within the Android manifest
definition for this FlutterFragmentActivity
.
Subclasses may override this method to directly control the Dart entrypoint.
protected String getInitialRoute()
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.
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.
@Nullable protected String getCachedEngineId()
FlutterEngine
to use within this FlutterFragmentActivity
, or null
if this FlutterFragmentActivity
does not want
to use a cached FlutterEngine
.@NonNull protected FlutterActivityLaunchConfigs.BackgroundMode getBackgroundMode()
Activity
, which defaults to FlutterActivityLaunchConfigs.BackgroundMode.opaque
.@NonNull protected RenderMode getRenderMode()
RenderMode
for the FlutterView
displayed in this FlutterFragmentActivity
.
That is, RenderMode.surface
if getBackgroundMode()
is BackgroundMode.opaque
or RenderMode.texture
otherwise.
@NonNull protected FrameLayout provideRootLayout(Context context)
FrameLayout
that is used as the content view of this activity.