Android Studio

Lifecycle

User Guide  Code Sample  Codelab
Lifecycle-aware components perform actions in response to a change in the lifecycle status of another component, such as activities and fragments. These components help you produce better-organized, and often lighter-weight code, that is easier to maintain.

This table lists all the artifacts in the androidx.lifecycle group.

Artifact Stable Release Release Candidate Beta Release Alpha Release lifecycle-* 2.10.0 2.11.0-rc01 - - lifecycle-viewmodel-navigation3 2.10.0 2.11.0-rc01 - - This library was last updated on: June 03, 2026

Declaring dependencies

To add a dependency on Lifecycle, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.

Add the dependencies for the artifacts you need in the build.gradle file for your app or module:

Kotlin

Groovy

    dependencies {
        def lifecycle_version = "2.10.0"
        def arch_version = "2.2.0"

        // ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
        // ViewModel utilities for Compose
        implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version"
        // LiveData
        implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
        // Lifecycles only (without ViewModel or LiveData)
        implementation "androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version"
        // Lifecycle utilities for Compose
        implementation "androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version"

        // Saved state module for ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"

        // ViewModel integration with Navigation3
        implementation "androidx.lifecycle:lifecycle-viewmodel-navigation3:2.11.0-rc01"

        // Annotation processor
        kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
        // alternately - if using Java8, use the following instead of lifecycle-compiler
        implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

        // optional - helpers for implementing LifecycleOwner in a Service
        implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"

        // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
        implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"

        // optional - ReactiveStreams support for LiveData
        implementation "androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version"

        // optional - Test helpers for LiveData
        testImplementation "androidx.arch.core:core-testing:$arch_version"

        // optional - Test helpers for Lifecycle runtime
        testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version"
    }
    

Kotlin

    dependencies {
        val lifecycle_version = "2.10.0"
        val arch_version = "2.2.0"

        // ViewModel
        implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
        // ViewModel utilities for Compose
        implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version")
        // LiveData
        implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
        // Lifecycles only (without ViewModel or LiveData)
        implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version")
        // Lifecycle utilities for Compose
        implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version")

        // Saved state module for ViewModel
        implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")

        // ViewModel integration with Navigation3
        implementation("androidx.lifecycle:lifecycle-viewmodel-navigation3:2.11.0-rc01")

        // Annotation processor
        kapt("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
        // alternately - if using Java8, use the following instead of lifecycle-compiler
        implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")

        // optional - helpers for implementing LifecycleOwner in a Service
        implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")

        // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
        implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")

        // optional - ReactiveStreams support for LiveData
        implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:$lifecycle_version")

        // optional - Test helpers for LiveData
        testImplementation("androidx.arch.core:core-testing:$arch_version")

        // optional - Test helpers for Lifecycle runtime
        testImplementation ("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version")
    }
    

Java

Groovy

    dependencies {
        def lifecycle_version = "2.10.0"
        def arch_version = "2.2.0"

        // ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
        // LiveData
        implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
        // Lifecycles only (without ViewModel or LiveData)
        implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"

        // Saved state module for ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version"

        // Annotation processor
        annotationProcessor "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
        // alternately - if using Java8, use the following instead of lifecycle-compiler
        implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"

        // optional - helpers for implementing LifecycleOwner in a Service
        implementation "androidx.lifecycle:lifecycle-service:$lifecycle_version"

        // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
        implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"

        // optional - ReactiveStreams support for LiveData
        implementation "androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version"

        // optional - Test helpers for LiveData
        testImplementation "androidx.arch.core:core-testing:$arch_version"

        // optional - Test helpers for Lifecycle runtime
        testImplementation "androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version"
    }
    

Kotlin

    dependencies {
        val lifecycle_version = "2.10.0"
        val arch_version = "2.2.0"

        // ViewModel
        implementation("androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version")
        // LiveData
        implementation("androidx.lifecycle:lifecycle-livedata:$lifecycle_version")
        // Lifecycles only (without ViewModel or LiveData)
        implementation("androidx.lifecycle:lifecycle-runtime:$lifecycle_version")

        // Saved state module for ViewModel
        implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")

        // Annotation processor
        annotationProcessor("androidx.lifecycle:lifecycle-compiler:$lifecycle_version")
        // alternately - if using Java8, use the following instead of lifecycle-compiler
        implementation("androidx.lifecycle:lifecycle-common-java8:$lifecycle_version")

        // optional - helpers for implementing LifecycleOwner in a Service
        implementation("androidx.lifecycle:lifecycle-service:$lifecycle_version")

        // optional - ProcessLifecycleOwner provides a lifecycle for the whole application process
        implementation("androidx.lifecycle:lifecycle-process:$lifecycle_version")

        // optional - ReactiveStreams support for LiveData
        implementation("androidx.lifecycle:lifecycle-reactivestreams:$lifecycle_version")

        // optional - Test helpers for LiveData
        testImplementation("androidx.arch.core:core-testing:$arch_version")

        // optional - Test helpers for Lifecycle runtime
        testImplementation("androidx.lifecycle:lifecycle-runtime-testing:$lifecycle_version")
    }
    

For more information about dependencies, see Add Build Dependencies.

Feedback

Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.

Create a new issue

See the Issue Tracker documentation for more information.

Version 2.11

Version 2.11.0-rc01

June 03, 2026

androidx.lifecycle:lifecycle-*:2.11.0-rc01 is released. Version 2.11.0-rc01 contains these commits.

Version 2.11.0-beta02

May 19, 2026

androidx.lifecycle:lifecycle-*:2.11.0-beta02 is released. Version 2.11.0-beta02 contains these commits.

API Changes

Bug Fixes

Version 2.11.0-beta01

April 22, 2026

androidx.lifecycle:lifecycle-*:2.11.0-beta01 is released. Version 2.11.0-beta01 contains these commits.

API Changes

Bug Fixes

Version 2.11.0-alpha03

March 25, 2026

androidx.lifecycle:lifecycle-*:2.11.0-alpha03 is released. Version 2.11.0-alpha03 contains these commits.

API Changes

Bug Fixes

Version 2.11.0-alpha02

March 11, 2026

androidx.lifecycle:lifecycle-*:2.11.0-alpha02 is released. Version 2.11.0-alpha02 contains these commits.

Scoped ViewModels

Note that ViewModelStoreProvider is available outside of Compose and can be used with Activities, Fragments and/or Views.

New Features

API Changes

Version 2.11.0-alpha01

February 25, 2026

androidx.lifecycle:lifecycle-*:2.11.0-alpha01 is released. Version 2.11.0-alpha01 contains these commits.

New Features

API Changes

Version 2.10

Version 2.10.0

November 19, 2025

androidx.lifecycle:lifecycle-*:2.10.0 is released. Version 2.10.0 contains these commits.

Important changes since 2.9.0:

Version 2.10.0-rc01

November 05, 2025

androidx.lifecycle:lifecycle-*:2.10.0-rc01 is released. Version 2.10.0-rc01 contains these commits.

Version 2.10.0-beta01

October 22, 2025

androidx.lifecycle:lifecycle-*:2.10.0-beta01 is released. Version 2.10.0-beta01 contains these commits.

API Changes

Bug Fixes

Version 2.10.0-alpha05

October 08, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha05 is released. Version 2.10.0-alpha05 contains these commits.

API Changes

Version 2.10.0-alpha04

September 24, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha04 is released. Version 2.10.0-alpha04 contains these commits.

API Changes

Version 2.10.0-alpha03

August 27, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha03 is released. Version 2.10.0-alpha03 contains these commits.

API Changes

Version 2.10.0-alpha02

August 13, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha02 is released. Version 2.10.0-alpha02 contains these commits.

New Features

API Changes

Bug Fixes

External Contribution

Version 2.10.0-alpha01

July 30, 2025

androidx.lifecycle:lifecycle-*:2.10.0-alpha01 is released. Version 2.10.0-alpha01 contains these commits.

New Features

API Changes

Version 2.9

Version 2.9.4

September 17, 2025

androidx.lifecycle:lifecycle-*:2.9.4 is released. Version 2.9.4 contains these commits.

Bug Fixes

Version 2.9.3

August 27, 2025

androidx.lifecycle:lifecycle-*:2.9.3 is released. Version 2.9.3 contains these commits.

New Features

Bug Fixes

Version 2.9.2

July 16, 2025

androidx.lifecycle:lifecycle-*:2.9.2 is released. Version 2.9.2 contains these commits.

Bug Fixes

Dependency updates

Version 2.9.1

June 4, 2025

androidx.lifecycle:lifecycle-*:2.9.1 is released. Version 2.9.1 contains these commits.

Bug Fixes

Version 2.9.0

May 7, 2025

androidx.lifecycle:lifecycle-*:2.9.0 is released. Version 2.9.0 contains these commits.

Important changes since 2.8.0

KotlinX Serialization Support

Kotlin Multiplatform

Behavior Changes

Version 2.9.0-rc01

April 23, 2025

androidx.lifecycle:lifecycle-*:2.9.0-rc01 is released. Version 2.9.0-rc01 contains these commits.

Lint API Compatibility Warning

Version 2.9.0-beta01

April 9, 2025

androidx.lifecycle:lifecycle-*:2.9.0-beta01 is released. Version 2.9.0-beta01 contains these commits.

API Changes

Dependency Updates

Version 2.9.0-alpha13

March 26, 2025

androidx.lifecycle:lifecycle-*:2.9.0-alpha13 is released with no notable public changes. Version 2.9.0-alpha13 contains these commits.

Version 2.9.0-alpha12

March 12, 2025

androidx.lifecycle:lifecycle-*:2.9.0-alpha12 is released. Version 2.9.0-alpha12 contains these commits.

API Changes

Version 2.9.0-alpha11

February 26, 2025

androidx.lifecycle:lifecycle-*:2.9.0-alpha11 is released. Version 2.9.0-alpha11 contains these commits.

API Changes

Version 2.9.0-alpha10

February 12, 2025

androidx.lifecycle:lifecycle-*:2.9.0-alpha10 is released. Version 2.9.0-alpha10 contains these commits.

API Changes

External Contribution

Version 2.9.0-alpha09

January 29, 2025

androidx.lifecycle:lifecycle-*:2.9.0-alpha09 is released. Version 2.9.0-alpha09 contains these commits.

New Features

API Changes

Version 2.9.0-alpha08

December 11, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha08 is released. Version 2.9.0-alpha08 contains these commits.

New Features

API Changes

Bug Fixes

Version 2.9.0-alpha07

November 13, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha07 is released. Version 2.9.0-alpha07 contains these commits.

Kotlin Multiplatform Compatibility

KotlinX Serialization Support

API Changes

Version 2.9.0-alpha06

October 30, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha06 is released. Version 2.9.0-alpha06 contains these commits.

Behavior Changes

Bug Fixes

Version 2.9.0-alpha05

October 16, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha05 is released with no notable changes. Version 2.9.0-alpha05 contains these commits.

Version 2.9.0-alpha04

October 2, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha04 is released. Version 2.9.0-alpha04 contains these commits.

Kotlin Multiplatform

Version 2.9.0-alpha03

September 18, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha03 is released. Version 2.9.0-alpha03 contains these commits.

Bug Fixes

Dependency Updates

Version 2.9.0-alpha02

September 4, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha02 is released. Version 2.9.0-alpha02 contains these commits.

Bug Fixes

External Contribution

Version 2.9.0-alpha01

August 7, 2024

androidx.lifecycle:lifecycle-*:2.9.0-alpha01 is released. Version 2.9.0-alpha01 contains these commits.

Kotlin Multiplatform

New Features

API Changes

Bug Fixes

Version 2.8

Version 2.8.7

October 30, 2024

androidx.lifecycle:lifecycle-*:2.8.7 is released. Version 2.8.7 contains these commits.

API Changes

Version 2.8.6

September 18, 2024

androidx.lifecycle:lifecycle-*:2.8.6 is released. Version 2.8.6 contains these commits.

Bug Fixes

Dependency Updates

Version 2.8.5

September 4, 2024

androidx.lifecycle:lifecycle-*:2.8.5 is released. Version 2.8.5 contains these commits.

Bug Fixes

External Contribution

Version 2.8.4

July 24, 2024

androidx.lifecycle:lifecycle-*:2.8.4 is released. Version 2.8.4 contains these commits.

Bug Fixes

Version 2.8.3

July 1, 2024

androidx.lifecycle:lifecycle-*:2.8.3 is released. Version 2.8.3 contains these commits.

Bug Fixes

Version 2.8.2

June 12, 2024

androidx.lifecycle:lifecycle-*:2.8.2 is released. Version 2.8.2 contains these commits.

Bug Fixes

Version 2.8.1

May 29, 2024

androidx.lifecycle:lifecycle-*:2.8.1 is released. Version 2.8.1 contains these commits.

Bug Fixes

Version 2.8.0

May 14, 2024

androidx.lifecycle:lifecycle-*:2.8.0 is released. Version 2.8.0 contains these commits.

Important changes since 2.7.0

Lifecycle Kotlin Multiplatform Compatibility

The core Lifecycle APIs in Lifecycle, LifecycleOwner, LifecycleObserver, Lifecycle.State, Lifecycle.Event, and LifecycleRegistry are now shipped in artifacts compatible with Kotlin Multiplatform.

Artifacts impacted:

ViewModel Kotlin Multiplatform Compatibility

The lifecycle-viewmodel artifact and APIs like ViewModel, ViewModelStore, ViewModelStoreOwner, and ViewModelProvider are now shipped in artifacts compatible with Kotlin Multiplatform.

To accommodate this change, methods such as those on ViewModelProvider that took a java.lang.Class<T> now have an equivalent method that takes a kotlin.reflect.KClass<T>.

Binary compatibility on Android has been maintained, but there are a few notable changes when comparing the Android API surface to the common API surface:

Artifacts impacted:

Behavior Changes

Known Issues

Version 2.8.0-rc01

May 1, 2024

androidx.lifecycle:lifecycle-*:2.8.0-rc01 is released. Version 2.8.0-rc01 contains these commits.

Bug Fixes

External Contribution

Version 2.8.0-beta01

April 17, 2024

androidx.lifecycle:lifecycle-*:2.8.0-beta01 is released. Version 2.8.0-beta01 contains these commits.

New Features

Version 2.8.0-alpha04

April 3, 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha04 is released. Version 2.8.0-alpha04 contains these commits.

New Features

Bug Fixes

Dependency update

Version 2.8.0-alpha03

March 20, 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha03 is released. Version 2.8.0-alpha03 contains these commits.

New Features

Kotlin Multiplatform Compatibility

The lifecycle-viewmodel artifact and APIs like ViewModel, ViewModelStore, ViewModelStoreOwner, and ViewModelProvider are now shipped in artifacts compatible with Kotlin Multiplatform. (b/214568825)

To accommodate this change, methods such as those on ViewModelProvider that took a java.lang.Class<T> now have an equivalent method that takes a kotlin.reflect.KClass<T>.

Binary compatibility on Android has been maintained, but there are a few notable changes when comparing the Android API surface to the common API surface:

Behavior Changes

Bug Fixes

External Contribution

Version 2.8.0-alpha02

February 21, 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha02 is released. Version 2.8.0-alpha02 contains these commits.

New Features

Kotlin Conversions

Kotlin Multiplatform Compatibility

API Changes

External Contribution

Version 2.8.0-alpha01

January 24, 2024

androidx.lifecycle:lifecycle-*:2.8.0-alpha01 is released. Version 2.8.0-alpha01 contains these commits.

New Features

Version 2.7

Version 2.7.0

January 10, 2024

androidx.lifecycle:lifecycle-*:2.7.0 is released. Version 2.7.0 contains these commits.

Important changes since 2.6.0

Lifecycle Event Observability

@Composable
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
  LifecycleEventEffect(Lifecycle.Event.ON_RESUME) {
    viewModel.refreshData()
  }
  // …
}
fun HomeScreen(viewModel: HomeViewModel = viewModel()) {
  LifecycleStartEffect(viewModel) {
    val timeTracking = viewModel.startTrackingTimeOnScreen()
    onStopOrDispose {
      timeTracking.stopTrackingTimeOnScreen()
    }
  }
  // …
}

See Run code on lifecycle events for more information.

Lifecycle State Observability

See Collect lifecycle state with flows for more information.

Version 2.7.0-rc02

December 13, 2023

androidx.lifecycle:lifecycle-*:2.7.0-rc02 is released. Version 2.7.0-rc02 contains these commits.

Bug Fixes

Version 2.7.0-rc01

November 15, 2023

androidx.lifecycle:lifecycle-*:2.7.0-rc01 is released. Version 2.7.0-rc01 contains these commits.

Bug Fixes

Version 2.7.0-beta01

November 1, 2023

androidx.lifecycle:lifecycle-*:2.7.0-beta01 is released with no changes. Version 2.7.0-beta01 contains these commits.

Version 2.7.0-alpha03

October 18, 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha03 is released. Version 2.7.0-alpha03 contains these commits.

New Features

Bug Fixes

Version 2.7.0-alpha02

September 6, 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha02 is released. Version 2.7.0-alpha02 contains these commits.

New Features

API Changes

Behavior Changes

Bug Fixes

Version 2.7.0-alpha01

July 26, 2023

androidx.lifecycle:lifecycle-*:2.7.0-alpha01 is released. Version 2.7.0-alpha01 contains these commits.

API Changes

Bug Fixes

Version 2.6

Version 2.6.2

September 6, 2023

androidx.lifecycle:lifecycle-*:2.6.2 is released. Version 2.6.2 contains these commits.

Bug Fixes

Version 2.6.1

March 22, 2023

androidx.lifecycle:lifecycle-*:2.6.1 is released. Version 2.6.1 contains these commits.

Dependency Updates

Version 2.6.0

March 8, 2023

androidx.lifecycle:lifecycle-*:2.6.0 is released. Version 2.6.0 contains these commits.

Important changes since 2.5.0

The table below provides the source conversions for the new version of lifecycle.

Lifecycle 2.5 Lifecycle 2.5 (KTX) Lifecycle 2.6
Transformations.switchMap(liveData) {...} liveData.switchMap {...} liveData.switchMap {...}
Transformations.map(liveData) {...} liveData.map {...} liveData.map {...}
Transformations.distinctUntilChanged(liveData) {...} liveData.distinctUntilChanged{...} liveData.distinctUntilChanged{...}
LiveDataReactiveStreams.fromPublisher(publisher) publisher.toLiveData() publisher.toLiveData()
LiveDataReactiveStreams.toPublisher(lifecycleOwner, liveData) liveData.toPublisher(lifecycleOwner) liveData.toPublisher(lifecycleOwner)
override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory override fun getDefaultViewModelProviderFactory(): ViewModelProvider.Factory = factory override val defaultViewModelProviderFactory = factory
override fun getDefaultViewModelCreationExtras(): CreationExtras = extras override fun getDefaultViewModelCreationExtras(): CreationExtras = extras override val defaultViewModelProviderCreationExtras = extras
ViewTreeLifecycleOwner.set(view, owner) ViewTreeLifecycleOwner.set(view, owner) view.setViewTreeLifecycleOwner(owner)
ViewTreeLifecycleOwner.get(view) view.findViewTreeLifecycleOwner() view.findViewTreeLifecycleOwner()
override fun getViewModelStore(): ViewModelStore = store override fun getViewModelStore(): ViewModelStore = store override val viewModelStore: ViewModelStore = store
override fun getLifecycle(): Lifecycle = registry override fun getLifecycle(): Lifecycle = registry override val lifecycle: Lifecycle get() = registry

Version 2.6.0-rc01

February 22, 2023

androidx.lifecycle:lifecycle-*:2.6.0-rc01 is released. Version 2.6.0-rc01 contains these commits.

Bug Fixes

Version 2.6.0-beta01

February 8, 2023

androidx.lifecycle:lifecycle-*:2.6.0-beta01 is released. Version 2.6.0-beta01 contains these commits.

Kotlin Conversions

Version 2.6.0-alpha05

January 25, 2023

androidx.lifecycle:lifecycle-*:2.6.0-alpha05 is released. Version 2.6.0-alpha05 contains these commits.

Kotlin Conversions

Version 2.6.0-alpha04

January 11, 2023

androidx.lifecycle:lifecycle-*:2.6.0-alpha04 is released. Version 2.6.0-alpha04 contains these commits.

New Features

API Changes

Kotlin Conversions

Bug Fixes

Version 2.6.0-alpha03

October 24, 2022

androidx.lifecycle:lifecycle-*:2.6.0-alpha03 is released. Version 2.6.0-alpha03 contains these commits.

Bug Fixes

Version 2.6.0-alpha02

September 7, 2022

androidx.lifecycle:lifecycle-*:2.6.0-alpha02 is released. Version 2.6.0-alpha02 contains these commits.

API Changes

Bug Fixes

Version 2.6.0-alpha01

June 29, 2022

androidx.lifecycle:lifecycle-*:2.6.0-alpha01 is released. Version 2.6.0-alpha01 contains these commits.

New Features

Version 2.5

Version 2.5.1

July 27, 2022

androidx.lifecycle:lifecycle-*:2.5.1 is released. Version 2.5.1 contains these commits.

Bug Fixes

Version 2.5.0

June 29, 2022

androidx.lifecycle:lifecycle-*:2.5.0 is released. Version 2.5.0 contains these commits.

Important changes since 2.4.0

Behavior changes

Version 2.5.0-rc02

June 15, 2022

androidx.lifecycle:lifecycle-*:2.5.0-rc02 is released. Version 2.5.0-rc02 contains these commits.

Bug Fixes

Version 2.5.0-rc01

May 11, 2022

androidx.lifecycle:lifecycle-*:2.5.0-rc01 is released. Version 2.5.0-rc01 contains these commits.

Bug Fixes

Version 2.5.0-beta01

April 20, 2022

androidx.lifecycle:lifecycle-*:2.5.0-beta01 is released. Version 2.5.0-beta01 contains these commits.

API Changes

Bug Fixes

Version 2.5.0-alpha06

April 6, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha06 is released. Version 2.5.0-alpha06 contains these commits.

New Features

API Changes

Bug Fixes

Version 2.5.0-alpha05

March 23, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha05 is released. Version 2.5.0-alpha05 contains these commits.

New Features

API Changes

Bug Fixes

Version 2.5.0-alpha04

March 9, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha04 is released. Version 2.5.0-alpha04 contains these commits.

API Changes

Version 2.5.0-alpha03

February 23, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha03 is released. Version 2.5.0-alpha03 contains these commits.

New Features

API Changes

Behavior changes

Version 2.5.0-alpha02

February 9, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha02 is released. Version 2.5.0-alpha02 contains these commits.

API Changes

Behavior changes

Bug Fixes

Version 2.5.0-alpha01

January 26, 2022

androidx.lifecycle:lifecycle-*:2.5.0-alpha01 is released. Version 2.5.0-alpha01 contains these commits.

ViewModel CreationExtras

With this release, we are laying the groundwork for restructuring how a ViewModel is constructed. Instead of a rigid set of subclasses of ViewModelProvider.Factory that each add additional functionality (allowing an Application constructor parameter via AndroidViewModelFactory, allowing a SavedStateHandle constructor parameter via SavedStateViewModelFactory and AbstractSavedStateViewModelFactory, etc.), we are moving to a world of stateless factories that rely on a new concept, CreationExtras. (Ia7343, b/188691010, b/188541057)

With this change, ViewModelProvider no longer makes direct calls into the previous create(Class<T>) method of ViewModelProvider.Factory. Instead, it calls into a new overload of create: create(Class<T>, CreationExtras). This means that any direct implementation of the ViewModelProvider.Factory instance now has access to each of these new CreationExtras:

These extras are provided by default when using Activity 1.5.0-alpha01, Fragment 1.5.0-alpha01, and Navigation 2.5.0-alpha01. If you use an earlier version of those libraries, your CreationExtras will be empty - all of the existing subclasses of ViewModelProvider.Factory have been rewritten to support both the legacy creation path used by earlier versions of those libraries and the CreationExtras path which will be used going forward.

These CreationExtras allow you to construct a ViewModelProvider.Factory that passes just the information you need to each ViewModel without relying on a strict hierarchy of Factory subclasses:

class CustomFactory : ViewModelProvider.Factory {
    override fun <T : ViewModel> create(modelClass: Class<T>, extras: CreationExtras): T {
        return when (modelClass) {
            HomeViewModel::class -> {
                // Get the Application object from extras
                val application = checkNotNull(extras[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY])
                // Pass it directly to HomeViewModel
                HomeViewModel(application)
            }
            DetailViewModel::class -> {
                // Create a SavedStateHandle for this ViewModel from extras
                val savedStateHandle = extras.createSavedStateHandle()
                DetailViewModel(savedStateHandle)
            }
            else -> throw IllegalArgumentException("Unknown class $modelClass")
        } as T
    }
}

We use the createSavedStateHandle() Kotlin extension function on CreationExtras from SavedStateHandleSupport to construct a SavedStateHandle only for the one ViewModel that needs it. (Ia6654, b/188541057)

Custom CreationExtras can be provided by overriding getDefaultViewModelCreationExtras() in your ComponentActivity or Fragment, thus making them available to your custom ViewModelProvider.Factory as a built in form of assisted injection. These extras will automatically be made available to your custom Factory when used directly with ViewModelProvider or when using the by viewModels() and by activityViewModels() Kotlin property extensions. (I79f2b, b/207012584, b/207012585, b/207012490)

Bug Fixes

Version 2.4

Version 2.4.1

February 9, 2022

androidx.lifecycle:lifecycle-*:2.4.1 is released. Version 2.4.1 contains these commits.

Bug Fixes

Version 2.4.0

October 27, 2021

androidx.lifecycle:lifecycle-*:2.4.0 is released. Version 2.4.0 contains these commits.

Important changes since 2.3.0

Version 2.4.0-rc01

September 29, 2021

androidx.lifecycle:lifecycle-*:2.4.0-rc01 is released with no changes from Lifecycle 2.4.0-beta01. Version 2.4.0-rc01 contains these commits.

Version 2.4.0-beta01

September 15, 2021

androidx.lifecycle:lifecycle-*:2.4.0-beta01 is released. Version 2.4.0-beta01 contains these commits.

API Changes

External Contribution

Version 2.4.0-alpha03

August 4, 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha03 is released. Version 2.4.0-alpha03 contains these commits.

API Changes

Behavior Changes

External Contribution

Version 2.4.0-alpha02

June 16, 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha02 is released. Version 2.4.0-alpha02 contains these commits.

New Features

API Changes

Bug Fixes

External Contribution

Version 2.4.0-alpha01

March 24, 2021

androidx.lifecycle:lifecycle-*:2.4.0-alpha01 is released. Version 2.4.0-alpha01 contains these commits.

Behavior Changes

API Changes

Bug Fixes

Lifecycle Viewmodel Compose Version 1.0.0

Version 1.0.0-alpha07

June 16, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.

Breaking API Changes

Version 1.0.0-alpha06

June 2, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.

Updated to be compatible with Compose version 1.0.0-beta08.

Version 1.0.0-alpha05

May 18, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

New Features

Bug Fixes

Version 1.0.0-alpha04

April 7, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.

Dependency Changes

Version 1.0.0-alpha03

March 10, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.

API Changes

Lifecycle-Viewmodel-Compose Version 1.0.0-alpha02

February 24, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.

API Changes

Lifecycle-Viewmodel-Compose Version 1.0.0-alpha01

February 10, 2021

androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.

New Features

Version 2.3.1

Lifecycle Version 2.3.1

March 24, 2021

androidx.lifecycle:lifecycle-*:2.3.1 is released. Version 2.3.1 contains these commits.

Bug Fixes

Version 2.3.0

Version 2.3.0

February 10, 2021

androidx.lifecycle:lifecycle-*:2.3.0 is released. Version 2.3.0 contains these commits.

Major changes since 2.2.0

Version 2.3.0-rc01

December 16, 2020

androidx.lifecycle:lifecycle-*:2.3.0-rc01 is released. Version 2.3.0-rc01 contains these commits.

Bug Fixes

External Contribution

Version 2.3.0-beta01

October 1, 2020

androidx.lifecycle:lifecycle-*:2.3.0-beta01 is released. Version 2.3.0-beta01 contains these commits.

API Changes

Bug Fixes

Documentation Changes

Version 2.3.0-alpha07

August 19, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha07 is released. Version 2.3.0-alpha07 contains these commits.

Bug Fixes

Version 2.3.0-alpha06

July 22, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha06 is released. Version 2.3.0-alpha06 contains these commits.

New Features

Behavior Changes

Bug Fixes

Version 2.3.0-alpha05

June 24, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha05 is released. Version 2.3.0-alpha05 contains these commits.

Bug Fixes

Version 2.3.0-alpha04

June 10, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha04 is released. Version 2.3.0-alpha04 contains these commits.

Bug Fixes

Version 2.3.0-alpha03

May 20, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha03 are released. Version 2.3.0-alpha03 contains these commits.

New Features

Bug Fixes

Version 2.3.0-alpha02

April 29, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha02 is released. Version 2.3.0-alpha02 contains these commits.

API Changes

Bug Fixes

Version 2.3.0-alpha01

March 4, 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha01 is released. Version 2.3.0-alpha01 contains these commits.

New Features

Bug fixes

Version 2.2.0

ViewModel-Savedstate Version 2.2.0

February 5, 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 is released. Version 2.2.0 contains these commits.

Lifecycle ViewModel SavedState now shares the same version as other Lifecycle artifacts. The behavior of 2.2.0 is identical to the behavior of 1.0.0.

Version 2.2.0

January 22, 2020

androidx.lifecycle:lifecycle-*:2.2.0 is released. Version 2.2.0 contains these commits.

Important changes since 2.1.0

Version 2.2.0-rc03

December 4, 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc03 is released. Version 2.2.0-rc03 contains these commits.

Bug fixes

External contributions

Dependency changes

Version 2.2.0-rc02

November 7, 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc02 is released. Version 2.2.0-rc02 contains these commits.

Bug fixes

Version 2.2.0-rc01

October 23, 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc01 is released. Version 2.2.0-rc01 contains these commits.

Bug fixes

External contributions

Version 2.2.0-beta01

October 9, 2019

androidx.lifecycle:lifecycle-*:2.2.0-beta01 is released. Version 2.2.0-beta01 contains these commits.

Bug fixes

Version 2.2.0-alpha05

September 18, 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha05 is released. Version 2.2.0-alpha05 contains these commits.

Bug fixes

Version 2.2.0-alpha04

September 5, 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha04 is released. The commits included in this version can be found here.

New features

External contributions

Version 2.2.0-alpha03

August 7, 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha03 is released. The commits included in this version can be found here.

New features

API changes

Version 2.2.0-alpha02

July 2, 2019

androidx.lifecycle:*:2.2.0-alpha02 is released. The commits included in this version can be found here.

API changes

Version 2.2.0-alpha01

May 7, 2019

androidx.lifecycle:*:2.2.0-alpha01 is released. The commits included in this version can be found here.

New features

ViewModel-SavedState Version 1.0.0

Version 1.0.0

January 22, 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 is released. Version 1.0.0 contains these commits.

Important features in 1.0.0

ViewModel-Savedstate Version 1.0.0-rc03

December 4, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03 is released. Version 1.0.0-rc03 contains these commits.

Dependency changes

Viewmodel-Savedstate Version 1.0.0-rc02

November 7, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02 is released. Version 1.0.0-rc02 contains these commits.

Dependency changes

ViewModel-SavedState Version 1.0.0-rc01

October 23, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01 is released with no changes from 1.0.0-beta01. Version 1.0.0-rc01 contains these commits.

ViewModel-Savedstate Version 1.0.0-beta01

October 9, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.

Bug fixes

ViewModel-SavedState Version 1.0.0-alpha05

September 18, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.

API changes

ViewModel-SavedState Version 1.0.0-alpha03

August 7, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03 is released. The commits included in this version can be found here.

Breaking Changes

ViewModel-SavedState Version 1.0.0-alpha02

July 2, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02 is released. The commits included in this version can be found here.

New features

API Changes

ViewModel-Savedstate Version 1.0.0-alpha01

March 13, 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01 is released. The full commit log for this initial release can be found here.

New features

Version 2.1.0

Important changes since 2.0.0

Version 2.1.0

September 5, 2019

androidx.lifecycle:lifecycle-*:2.1.0 is released. The commits included in this version can be found here.

Version 2.1.0-rc01

July 2, 2019

androidx.lifecycle:*:2.1.0-rc01 is released with no changes from androidx.lifecycle:*:2.1.0-beta01. The commits included in this version can be found here.

Version 2.1.0-beta01

May 7, 2019

androidx.lifecycle:*:2.1.0-beta01 is released. The commits included in this version can be found here.

New features

Version 2.1.0-alpha04

April 3, 2019

androidx.lifecycle:*:2.1.0-alpha04 is released. The commits included in this version can be found here.

API changes

Version 2.1.0-alpha03

March 13, 2019

androidx.lifecycle:*:2.1.0-alpha03 is released. The full list of commits included in this version can be found here.

API changes

Version 2.1.0-alpha02

January 30, 2019

androidx.lifecycle 2.1.0-alpha02 is released.

API changes

Bug fixes

Version 2.1.0-alpha01

December 17, 2018

androidx.lifecycle 2.1.0-alpha01 is released.

New features

Version 2.0.0

Version 2.0.0

September 21, 2018

Lifecycle 2.0.0 is released with one bugfix from 2.0.0-rc01 in ViewModel.

Bug Fixes

Version 2.0.0-beta01

July 2, 2018

Bug Fixes

Pre-AndroidX Versions

For the pre-AndroidX versions of Lifecycle that follow, include these dependencies:

dependencies {
    def lifecycle_version = "1.1.1"

    // ViewModel and LiveData
    implementation "android.arch.lifecycle:extensions:$lifecycle_version"
    // alternatively - just ViewModel
    implementation "android.arch.lifecycle:viewmodel:$lifecycle_version" // For Kotlin use viewmodel-ktx
    // alternatively - just LiveData
    implementation "android.arch.lifecycle:livedata:$lifecycle_version"
    // alternatively - Lifecycles only (no ViewModel or LiveData).
    //     Support library depends on this lightweight import
    implementation "android.arch.lifecycle:runtime:$lifecycle_version"

    annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version" // For Kotlin use kapt instead of annotationProcessor
    // alternately - if using Java8, use the following instead of compiler
    implementation "android.arch.lifecycle:common-java8:$lifecycle_version"

    // optional - ReactiveStreams support for LiveData
    implementation "android.arch.lifecycle:reactivestreams:$lifecycle_version"

    // optional - Test helpers for LiveData
    testImplementation "android.arch.core:core-testing:$lifecycle_version"
}

Version 1.1.1

March 21, 2018

Only one small change: android.arch.core.util.Function is moved from arch:runtime to arch:common. This allows it to be used without the runtime dependency, e.g. in paging:common below.

lifecycle:common is a dependency of lifecycle:runtime, so this change doesn’t affect lifecycle:runtime directly, only modules that depend directly on lifecycle:common, as Paging does.

Version 1.1.0

January 22, 2018

Packaging Changes

New, much smaller dependencies are now available:

API Changes