Package io.flutter.embedding.android

# 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`

public class FlutterFragmentActivity extends androidx.fragment.app.FragmentActivity implements FlutterEngineProvider, FlutterEngineConfigurator
A Flutter `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`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  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.NewEngineInGroupIntentBuilder`
  Builder to create an `Intent` that launches a `FlutterFragmentActivity` with a new `FlutterEngine` by FlutterEngineGroup#createAndRunEngine.
  `static class`
  `FlutterFragmentActivity.NewEngineIntentBuilder`
  Builder to create an `Intent` that launches a `FlutterFragmentActivity` with a new `FlutterEngine` and the desired configuration.

  ## Nested classes/interfaces inherited from class androidx.core.app.ComponentActivity

  `androidx.core.app.ComponentActivity.ExtraData`

  ## Nested classes/interfaces inherited from class android.app.Activity

  `Activity.ScreenCaptureCallback`

  ## Nested classes/interfaces inherited from class android.content.Context

  `Context.BindServiceFlags`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final 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, FULLSCREEN_MODE_REQUEST_ENTER, FULLSCREEN_MODE_REQUEST_EXIT, OVERRIDE_TRANSITION_CLOSE, OVERRIDE_TRANSITION_OPEN, 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_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`

  ### 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

  Modifier and Type
  Method
  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`
  `getCachedEngineGroupId()`
  `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`.
  `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()`
  Returns the desired `RenderMode` for the `FlutterView` displayed in this `FlutterFragmentActivity`.
  `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.
  `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.
  `static FlutterFragmentActivity.NewEngineInGroupIntentBuilder`
  `withNewEngineInGroup(String engineGroupId)`
  Creates a `FlutterFragmentActivity.NewEngineInGroupIntentBuilder`, which can be used to configure an `Intent` to launch a `FlutterFragmentActivity` that internally uses an existing `FlutterEngineGroup` that is cached in `FlutterEngineGroupCache`.

  ### 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, clearOverrideActivityTransition, 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, 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, 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, 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, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterComponentCallbacks, unregisterForContextMenu, unregisterScreenCaptureCallback`

  ### Methods inherited from class android.view.ContextThemeWrapper

  `applyOverrideConfiguration, getAssets, getResources, getTheme, setTheme`

  ### Methods inherited from class android.content.ContextWrapper

  `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`

  ### Methods inherited from class android.content.Context

  `bindIsolatedService, getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, revokeSelfPermissionOnKill, sendBroadcastWithMultiplePermissions`

  ### 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`

- ## Field Details

  - ### FRAGMENT_CONTAINER_ID

    public static final int FRAGMENT_CONTAINER_ID

- ## Constructor Details

  - ### FlutterFragmentActivity

    public FlutterFragmentActivity()

- ## Method Details

  - ### createDefaultIntent

    @NonNull public static Intent createDefaultIntent(@NonNull Context launchContext)
    Creates an `Intent` that launches a `FlutterFragmentActivity`, which executes a `main()` Dart entrypoint, and displays the "/" route as Flutter's initial route.

  - ### withNewEngine

    @NonNull public 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.

  - ### withCachedEngine

    @NonNull public static FlutterFragmentActivity.CachedEngineIntentBuilder withCachedEngine(@NonNull 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`.

  - ### withNewEngineInGroup

    public static FlutterFragmentActivity.NewEngineInGroupIntentBuilder withNewEngineInGroup(@NonNull String engineGroupId)
    Creates a `FlutterFragmentActivity.NewEngineInGroupIntentBuilder`, which can be used to configure an `Intent` to launch a `FlutterFragmentActivity` that internally uses an existing `FlutterEngineGroup` that is cached in `FlutterEngineGroupCache`.
    Parameters:
      `engineGroupId` - A cached engine group ID.
    Returns:
      The builder.

  - ### onCreate

    protected void onCreate(@Nullable Bundle savedInstanceState)
    Overrides:
      `onCreate` in class `androidx.fragment.app.FragmentActivity`

  - ### createFlutterFragment

    @NonNull protected FlutterFragment createFlutterFragment()
    Creates the instance of the `FlutterFragment` that this `FlutterFragmentActivity` displays.

    Subclasses may override this method to return a specialization of `FlutterFragment`.

  - ### onPostResume

    public void onPostResume()
    Overrides:
      `onPostResume` in class `androidx.fragment.app.FragmentActivity`

  - ### onNewIntent

    protected void onNewIntent(@NonNull Intent intent)
    Overrides:
      `onNewIntent` in class `androidx.fragment.app.FragmentActivity`

  - ### onBackPressed

    public void onBackPressed()
    Overrides:
      `onBackPressed` in class `androidx.activity.ComponentActivity`

  - ### onRequestPermissionsResult

    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
    Specified by:
      `onRequestPermissionsResult` in interface `androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback`
    Overrides:
      `onRequestPermissionsResult` in class `androidx.fragment.app.FragmentActivity`

  - ### onUserLeaveHint

    public void onUserLeaveHint()
    Overrides:
      `onUserLeaveHint` in class `Activity`

  - ### onTrimMemory

    public void onTrimMemory(int level)
    Specified by:
      `onTrimMemory` in interface `ComponentCallbacks2`
    Overrides:
      `onTrimMemory` in class `Activity`

  - ### onActivityResult

    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    Overrides:
      `onActivityResult` in class `androidx.fragment.app.FragmentActivity`

  - ### getFlutterEngine

    @Nullable protected FlutterEngine getFlutterEngine()

  - ### shouldDestroyEngineWithHost

    public boolean shouldDestroyEngineWithHost()
    Returns false if the `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.

  - ### shouldAttachEngineToActivity

    protected boolean shouldAttachEngineToActivity()
    Hook for subclasses to control whether or not the `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`.

  - ### shouldHandleDeeplinking

    protected boolean shouldHandleDeeplinking()
    Whether to handle the deeplinking from the `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`.

  - ### provideFlutterEngine

    @Nullable public FlutterEngine provideFlutterEngine(@NonNull Context context)
    Hook for subclasses to easily provide a custom `FlutterEngine`.
    Specified by:
      `provideFlutterEngine` in interface `FlutterEngineProvider`
    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 a `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.

    Specified by:
      `configureFlutterEngine` in interface `FlutterEngineConfigurator`
    Parameters:
      `flutterEngine` - The Flutter engine.

  - ### cleanUpFlutterEngine

    public void cleanUpFlutterEngine(@NonNull FlutterEngine flutterEngine)
    Hook for the host to cleanup references that were established in `configureFlutterEngine(FlutterEngine)` before the host is destroyed or detached.

    This method is called in `FragmentActivity.onDestroy()`.

    Specified by:
      `cleanUpFlutterEngine` in interface `FlutterEngineConfigurator`
    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 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.

  - ### getMetaData

    @Nullable protected Bundle getMetaData() throws PackageManager.NameNotFoundException
    Retrieves the meta data specified in the AndroidManifest.xml.
    Throws:
      `PackageManager.NameNotFoundException`

  - ### 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>` 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.

  - ### 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>` called `FlutterActivityLaunchConfigs.DART_ENTRYPOINT_URI_META_DATA_KEY` within the Android manifest definition for this `FlutterFragmentActivity`.

    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:

    1. Pass a boolean as `FlutterActivityLaunchConfigs.EXTRA_INITIAL_ROUTE` with the launching `Intent`, or
    2. Set a `<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.

  - ### getCachedEngineId

    @Nullable 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`.

  - ### getCachedEngineGroupId

    @Nullable protected String getCachedEngineGroupId()

  - ### getBackgroundMode

    @NonNull protected FlutterActivityLaunchConfigs.BackgroundMode getBackgroundMode()
    The desired window background mode of this `Activity`, which defaults to `FlutterActivityLaunchConfigs.BackgroundMode.opaque`.

  - ### getRenderMode

    @NonNull protected RenderMode getRenderMode()
    Returns the desired `RenderMode` for the `FlutterView` displayed in this `FlutterFragmentActivity`.

    That is, `RenderMode.surface` if `getBackgroundMode()` is `FlutterActivityLaunchConfigs.BackgroundMode.opaque` or `RenderMode.texture` otherwise.

  - ### provideRootLayout

    @NonNull protected FrameLayout provideRootLayout(Context context)
    Returns a `FrameLayout` that is used as the content view of this activity.