[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. |
| [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 : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`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. |
| [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 : `[`SelectionAwareSessionObserver`](../../mozilla.components.browser.session/-selection-aware-session-observer/index.md)`, `[`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. |
| [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. |
| [ThumbnailsFeature](../../mozilla.components.feature.session/-thumbnails-feature/index.md) | `class ThumbnailsFeature : `[`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 [Session.thumbnail](../../mozilla.components.browser.session/-session/thumbnail.md) property. |
| [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 : `[`Observer`](../../mozilla.components.browser.session/-session/-observer/index.md)`, `[`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. |
