[android-components](../../index.md) / [mozilla.components.support.base.feature](../index.md) / [LifecycleAwareFeature](./index.md)

# LifecycleAwareFeature

`interface LifecycleAwareFeature : LifecycleObserver` [(source)](https://github.com/mozilla-mobile/android-components/blob/master/components/support/base/src/main/java/mozilla/components/support/base/feature/LifecycleAwareFeature.kt#L14)

An interface for all entry points to feature components to implement in order to make them lifecycle aware.

### Functions

| Name | Summary |
|---|---|
| [start](start.md) | `abstract fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
| [stop](stop.md) | `abstract fun stop(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |

### Extension Functions

| Name | Summary |
|---|---|
| [loadResourceAsString](../../mozilla.components.support.test.file/kotlin.-any/load-resource-as-string.md) | `fun `[`Any`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`.loadResourceAsString(path: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`): `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)<br>Loads a file from the resources folder and returns its content as a string object. |

### Inheritors

| Name | Summary |
|---|---|
| [AppLinksFeature](../../mozilla.components.feature.app.links/-app-links-feature/index.md) | `class AppLinksFeature : `[`LifecycleAwareFeature`](./index.md)<br>This feature implements observer for handling redirects to external apps. The users are asked to confirm their intention before leaving the app if in private session.  These include the Android Intents, custom schemes and support for [Intent.CATEGORY_BROWSABLE](#) `http(s)` URLs. |
| [BrowserThumbnails](../../mozilla.components.browser.thumbnails/-browser-thumbnails/index.md) | `class BrowserThumbnails : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation for automatically taking thumbnails of sites. The feature will take a screenshot when the page finishes loading, and will add it to the [ContentState.thumbnail](../../mozilla.components.browser.state.state/-content-state/thumbnail.md) property. |
| [ContextMenuFeature](../../mozilla.components.feature.contextmenu/-context-menu-feature/index.md) | `class ContextMenuFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature for displaying a context menu after long-pressing web content. |
| [CoordinateScrollingFeature](../../mozilla.components.feature.session/-coordinate-scrolling-feature/index.md) | `class CoordinateScrollingFeature : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation for connecting an [EngineView](../../mozilla.components.concept.engine/-engine-view/index.md) with any View that you want to coordinate scrolling behavior with. |
| [CustomTabWindowFeature](../../mozilla.components.feature.customtabs/-custom-tab-window-feature/index.md) | `class CustomTabWindowFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation for handling window requests by opening custom tabs. |
| [CustomTabsToolbarFeature](../../mozilla.components.feature.customtabs/-custom-tabs-toolbar-feature/index.md) | `class CustomTabsToolbarFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Initializes and resets the Toolbar for a Custom Tab based on the CustomTabConfig. |
| [DownloadsFeature](../../mozilla.components.feature.downloads/-downloads-feature/index.md) | `class DownloadsFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`PermissionsFeature`](../-permissions-feature/index.md)<br>Feature implementation to provide download functionality for the selected session. The feature will subscribe to the selected session and listen for downloads. |
| [FindInPageFeature](../../mozilla.components.feature.findinpage/-find-in-page-feature/index.md) | `class FindInPageFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Feature implementation that will keep a [FindInPageView](../../mozilla.components.feature.findinpage.view/-find-in-page-view/index.md) in sync with a bound [SessionState](../../mozilla.components.browser.state.state/-session-state/index.md). |
| [FullScreenFeature](../../mozilla.components.feature.session/-full-screen-feature/index.md) | `open class FullScreenFeature : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Feature implementation for handling fullscreen mode (exiting and back button presses). |
| [FxaWebChannelFeature](../../mozilla.components.feature.accounts/-fxa-web-channel-feature/index.md) | `class FxaWebChannelFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation that provides Firefox Accounts WebChannel support. For more information https://github.com/mozilla/fxa/blob/master/packages/fxa-content-server/docs/relier-communication-protocols/fx-webchannel.md This feature uses a web extension to communicate with FxA Web Content. |
| [ManifestUpdateFeature](../../mozilla.components.feature.pwa.feature/-manifest-update-feature/index.md) | `class ManifestUpdateFeature : `[`Observer`](../../mozilla.components.browser.session/-session/-observer/index.md)`, `[`LifecycleAwareFeature`](./index.md)<br>Feature used to update the existing web app manifest and web app shortcut. |
| [MediaFullscreenOrientationFeature](../../mozilla.components.feature.media.fullscreen/-media-fullscreen-orientation-feature/index.md) | `class MediaFullscreenOrientationFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature that will auto-rotate the device to the correct orientation for the media aspect ratio. |
| [P2PFeature](../../mozilla.components.feature.p2p/-p2-p-feature/index.md) | `class P2PFeature : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`LifecycleAwareFeature`](./index.md)`, `[`PermissionsFeature`](../-permissions-feature/index.md)<br>Feature implementation for peer-to-peer communication between browsers. |
| [PrivateNotificationFeature](../../mozilla.components.feature.privatemode.notification/-private-notification-feature/index.md) | `class PrivateNotificationFeature<T : `[`AbstractPrivateNotificationService`](../../mozilla.components.feature.privatemode.notification/-abstract-private-notification-service/index.md)`> : `[`LifecycleAwareFeature`](./index.md)<br>Starts up a [AbstractPrivateNotificationService](../../mozilla.components.feature.privatemode.notification/-abstract-private-notification-service/index.md) once a private tab is opened. |
| [PromptFeature](../../mozilla.components.feature.prompts/-prompt-feature/index.md) | `class PromptFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`PermissionsFeature`](../-permissions-feature/index.md)`, Prompter`<br>Feature for displaying native dialogs for html elements like: input type date, file, time, color, option, menu, authentication, confirmation and alerts. |
| [QrFeature](../../mozilla.components.feature.qr/-qr-feature/index.md) | `class QrFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)`, `[`PermissionsFeature`](../-permissions-feature/index.md)<br>Feature implementation that provides QR scanning functionality via the [QrFragment](../../mozilla.components.feature.qr/-qr-fragment/index.md). |
| [ReaderViewFeature](../../mozilla.components.feature.readerview/-reader-view-feature/index.md) | `class ReaderViewFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Feature implementation that provides a reader view for the selected session, based on a web extension. |
| [SearchFeature](../../mozilla.components.feature.search/-search-feature/index.md) | `class SearchFeature : `[`LifecycleAwareFeature`](./index.md)<br>Lifecycle aware feature that forwards [SearchRequest](../../mozilla.components.concept.engine.search/-search-request/index.md)s from the [store](#) to [performSearch](#), and then consumes them. |
| [SecureWindowFeature](../../mozilla.components.feature.privatemode.feature/-secure-window-feature/index.md) | `class SecureWindowFeature : `[`LifecycleAwareFeature`](./index.md)<br>Prevents screenshots and screen recordings in private tabs. |
| [SessionFeature](../../mozilla.components.feature.session/-session-feature/index.md) | `class SessionFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Feature implementation for connecting the engine module with the session module. |
| [SitePermissionsFeature](../../mozilla.components.feature.sitepermissions/-site-permissions-feature/index.md) | `class SitePermissionsFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`PermissionsFeature`](../-permissions-feature/index.md)<br>This feature will subscribe to the currently selected [Session](../../mozilla.components.browser.session/-session/index.md) and display a suitable dialogs based on [Session.Observer.onAppPermissionRequested](../../mozilla.components.browser.session/-session/-observer/on-app-permission-requested.md) or [Session.Observer.onContentPermissionRequested](../../mozilla.components.browser.session/-session/-observer/on-content-permission-requested.md)  events. Once the dialog is closed the [PermissionRequest](../../mozilla.components.concept.engine.permission/-permission-request/index.md) will be consumed. |
| [SwipeRefreshFeature](../../mozilla.components.feature.session/-swipe-refresh-feature/index.md) | `class SwipeRefreshFeature : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`LifecycleAwareFeature`](./index.md)`, OnChildScrollUpCallback, OnRefreshListener`<br>Feature implementation to add pull to refresh functionality to browsers. |
| [SyncedTabsFeature](../../mozilla.components.feature.syncedtabs/-synced-tabs-feature/index.md) | `class SyncedTabsFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation that will keep a [SyncedTabsView](../../mozilla.components.feature.syncedtabs.view/-synced-tabs-view/index.md) notified with other synced device tabs for the Firefox Sync account. |
| [SyncedTabsInteractor](../../mozilla.components.feature.syncedtabs.interactor/-synced-tabs-interactor/index.md) | `interface SyncedTabsInteractor : `[`Listener`](../../mozilla.components.feature.syncedtabs.view/-synced-tabs-view/-listener/index.md)`, `[`LifecycleAwareFeature`](./index.md)<br>An interactor that handles events from [SyncedTabsView.Listener](../../mozilla.components.feature.syncedtabs.view/-synced-tabs-view/-listener/index.md). |
| [SyncedTabsPresenter](../../mozilla.components.feature.syncedtabs.presenter/-synced-tabs-presenter/index.md) | `interface SyncedTabsPresenter : `[`LifecycleAwareFeature`](./index.md)<br>A presenter that orchestrates the [FxaAccountManager](../../mozilla.components.service.fxa.manager/-fxa-account-manager/index.md) being in the correct state to request remote tabs from the [SyncedTabsController](../../mozilla.components.feature.syncedtabs.controller/-synced-tabs-controller/index.md) or notifies [SyncedTabsView.onError](../../mozilla.components.feature.syncedtabs.view/-synced-tabs-view/on-error.md) otherwise. |
| [TabsFeature](../../mozilla.components.feature.tabs.tabstray/-tabs-feature/index.md) | `class TabsFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation for connecting a tabs tray implementation with the session module. |
| [ToolbarFeature](../../mozilla.components.feature.toolbar/-toolbar-feature/index.md) | `class ToolbarFeature : `[`LifecycleAwareFeature`](./index.md)`, `[`UserInteractionHandler`](../-user-interaction-handler/index.md)<br>Feature implementation for connecting a toolbar implementation with the session module. |
| [WebAppHideToolbarFeature](../../mozilla.components.feature.pwa.feature/-web-app-hide-toolbar-feature/index.md) | `class WebAppHideToolbarFeature : `[`LifecycleAwareFeature`](./index.md)<br>Hides a custom tab toolbar for Progressive Web Apps and Trusted Web Activities. |
| [WebExtensionPopupFeature](../../mozilla.components.support.webextensions/-web-extension-popup-feature/index.md) | `class WebExtensionPopupFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation that opens popups for web extensions browser actions. |
| [WebExtensionToolbarFeature](../../mozilla.components.feature.toolbar/-web-extension-toolbar-feature/index.md) | `class WebExtensionToolbarFeature : `[`LifecycleAwareFeature`](./index.md)<br>Web extension toolbar implementation that updates the toolbar whenever the state of web extensions changes. |
| [WindowFeature](../../mozilla.components.feature.tabs/-window-feature/index.md) | `class WindowFeature : `[`LifecycleAwareFeature`](./index.md)<br>Feature implementation for handling window requests by opening and closing tabs. |
