Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Lifecycle

Komponen berbasis Lifecycle melakukan tindakan sebagai respons terhadap perubahan status siklus proses komponen lain, seperti aktivitas dan fragmen. Komponen-komponen ini membantu Anda menghasilkan kode yang lebih rapi dan sering kali lebih ringan, yang lebih mudah dipelihara.
Update Terbaru Rilis Stabil Saat Ini Kandidat Rilis Berikutnya Rilis Beta Rilis Alfa
19 Agustus 2020 2.2.0 - - 2.3.0-alpha07

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada Lifecycle, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Kotlin

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

        // ViewModel
        implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$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"

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

        // 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"
    }
    

Java

    dependencies {
        def lifecycle_version = "2.2.0"
        def arch_version = "2.1.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"
    }
    

Untuk informasi dependensi selengkapnya, lihat Menambahkan Dependensi Build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau memiliki ide untuk meningkatkan kualitas library ini. Harap lihat masalah yang ada di library ini sebelum Anda membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah ada dengan mengklik tombol bintang.

Melaporkan masalah baru

Baca dokumentasi Issue Tracker untuk mengetahui informasi selengkapnya.

Versi 2.3.0

Versi 2.3.0-alpha07

19 Agustus 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha07 dirilis. Versi 2.3.0-alpha07 berisi commit berikut ini.

Perbaikan Bug

  • Memperbaiki masalah error dalam pemeriksaan Lint NullSafeMutableLiveData. (aosp/1395367)

Versi 2.3.0-alpha06

22 Juli 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha06 dirilis. Versi 2.3.0-alpha06 berisi commit berikut.

Fitur Baru

  • Menambahkan metode helper statis downFrom(State), downTo(State), upFrom(State), upTo(State) ke Lifecycle.Event untuk menghasilkan Event dengan State dan arah transisi. Menambahkan metode getTargetState() yang memberikan State yang akan ditransisikan ke Lifecycle langsung setelah Event. (I00887)
  • Menambahkan Lifecycle.withStateAtLeast API yang menunggu status siklus proses dan menjalankan blok kode non-penangguhan secara sinkron pada saat terjadi perubahan status, lalu melanjutkan dengan hasilnya. API ini berbeda dari metode when* yang ada karena tidak mengizinkan menjalankan kode penangguhan dan tidak menggunakan dispatcher khusus. (aosp/1326081)

Perubahan Perilaku

  • LifecycleRegistry kini memberlakukan DESTROYED sebagai status terminal. (I00887)
  • LifecycleRegistry kini memverifikasi bahwa metodenya dipanggil pada thread utama. Hal ini selalu menjadi persyaratan untuk siklus proses aktivitas, fragmen, dll. Penambahan pengamat dari thread non-utama berakibat pada error yang sulit ditemukan dalam waktu proses. Untuk objek LifecycleRegistry yang dimiliki oleh komponen Anda sendiri, Anda dapat keluar secara eksplisit dari pemeriksaan dengan menggunakan LifecycleRegistry.createUnsafe(...), tetapi Anda harus memastikan bahwa sinkronisasi yang tepat diterapkan saat LifecycleRegistry ini diakses dari thread berbeda (Ie7280, b/379392809)

Perbaikan Bug

  • Memperbaiki error di NullSafeMutableLiveData. (b/159987480)
  • Memperbaiki ObsoleteLintCustomCheck untuk pemeriksaan Lint yang digabungkan dengan lifecycle-livedata-core-ktx (dan khususnya NullSafeMutableLiveData). (b/158699265)

Versi 2.3.0-alpha05

24 Juni 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha05 dirilis. Versi 2.3.0-alpha05 berisi commit berikut.

Perbaikan Bug

  • LiveData kini dapat menangani kasus reentrant dengan lebih baik, menghindari panggilan duplikat ke onActive() atau onInactive(). (b/157840298)
  • Memperbaiki masalah pemeriksaan Lint tidak berjalan saat menggunakan Android Studio 4.1 Canary 6 atau versi yang lebih tinggi. (aosp/1331903)

Versi 2.3.0-alpha04

10 Juni 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha04 dirilis. Versi 2.3.0-alpha04 berisi commit berikut.

Perbaikan Bug

  • Memperbaiki error dalam pemeriksaan Lint NonNullableMutableLiveData. (b/157294666)
  • Pemeriksaan Lint NonNullableMutableLiveData kini mencakup lebih banyak kasus secara signifikan ketika nilai null ditetapkan pada MutableLiveData dengan parameter jenis non-null. (b/156002218)

Versi 2.3.0-alpha03

20 Mei 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha03 dirilis. Versi 2.3.0-alpha03 berisi commit berikut.

Fitur Baru

  • SavedStateHandle kini mendukung serialisasi lambat sehingga Anda dapat memanggil setSavedStateProvider() untuk kunci tertentu, menyediakan SavedStateProvider yang akan mendapatkan callback ke saveState() saat SavedStateHandle diminta untuk menyimpan statusnya. (b/155106862)
  • ViewTreeViewModelStoreOwner.get(View) API yang baru memungkinkan Anda mengambil ViewModelStoreOwner dengan memberikan instance View. Anda harus melakukan upgrade ke Activity 1.2.0-alpha05, Fragment 1.3.0-alpha05, dan AppCompat 1.3.0-alpha01 untuk mengisi ini dengan benar. Ekstensi Kotlin findViewModelStoreOwner() telah ditambahkan ke lifecycle-viewmodel-ktx. (aosp/1295522)

Perbaikan Bug

  • Memperbaiki masalah yang menyebabkan pemeriksaan Lint MutableLiveData yang dirilis dalam Lifecycle 2.3.0-alpha01 tidak dipublikasikan bersama artefak lifecycle-livedata-core-ktx. (b/155323109)

Versi 2.3.0-alpha02

29 April 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha02 dirilis. Versi 2.3.0-alpha02 berisi commit berikut.

Perubahan API

  • SavedStateViewModelFactory sekarang memungkinkan Anda meneruskan Application null ke konstruktornya untuk kasus dukungan yang lebih baik jika salah satu tidak tersedia dan dukungan untuk AndroidViewModel tidak diperlukan. (aosp/1285740)

Perbaikan Bug

  • Meningkatkan performa start cold dengan menghindari kegagalan verifikasi class di API 28 dan perangkat yang lebih lama. (aosp/1282118)

Versi 2.3.0-alpha01

4 Maret 2020

androidx.lifecycle:lifecycle-*:2.3.0-alpha01 dirilis. Versi 2.3.0-alpha01 berisi commit berikut.

Fitur Baru

  • ViewTreeLifecycleOwner.get(View) API yang baru memungkinkan Anda mengambil LifecycleOwner dengan memberikan instance View. Anda harus melakukan upgrade ke Activity1.2.0-alpha01 dan Fragment 1.3.0-alpha01 untuk mengisi ini dengan benar. Ekstensi Kotlin findViewTreeLifecycleOwner tersedia di lifecycle-runtime-ktx. (aosp/1182361, aosp/1182956)
  • Menambahkan pemeriksaan Lint baru yang memberi Anda peringatan saat menetapkan nilai null pada MutableLiveData yang telah ditetapkan di Kotlin sebagai non-null. Opsi ini tersedia saat menggunakan artefak livedata-core-ktx atau livedata-ktx. (aosp/1154723, aosp/1159092)
  • Artefak lifecycle-runtime-testing baru tersedia, yang menyediakan TestLifecycleOwner yang menerapkan LifecycleOwner dan menyediakan Lifecycle dapat diubah yang aman untuk thread. (aosp/1242438)

Perbaikan bug

  • Artefak lifecycle-runtime sekarang memiliki nama paket yang unik. (aosp/1187196)

Versi 2.2.0

ViewModel-Savedstate Versi 2.2.0

5 Februari 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0 dirilis. Versi 2.2.0 berisi commit berikut.

Lifecycle ViewModel SavedState sekarang memiliki versi yang sama dengan artefak Lifecycle lainnya. Perilaku 2.2.0 identik dengan perilaku 1.0.0.

Versi 2.2.0

22 Januari 2020

androidx.lifecycle:lifecycle-*:2.2.0 dirilis. Versi 2.2.0 berisi commit berikut.

Perubahan penting sejak versi 2.1.0

  • Integrasi Coroutine Lifecycle: Artefak lifecycle-runtime-ktx baru menambahkan integrasi antara coroutine Lifecycle dan Kotlin. lifecycle-livedata-ktx juga telah diperluas untuk memanfaatkan coroutine. Lihat Menggunakan coroutine Kotlin dengan Komponen Arsitektur untuk detail selengkapnya.
  • Penghentian ViewModelProviders.of(): ViewModelProviders.of() sekarang tidak digunakan lagi. Anda dapat meneruskan Fragment atau FragmentActivity ke konstruktor ViewModelProvider(ViewModelStoreOwner) baru untuk mendapatkan fungsionalitas yang sama saat menggunakan Fragment 1.2.0.
  • Penghentian Artefak lifecycle-extensions: Dengan penghentian ViewModelProviders.of() di atas, rilis ini menandai penghentian API terakhir di lifecycle-extensions dan artefak ini sekarang akan dianggap tidak digunakan lagi secara keseluruhan. Sebaiknya tetapkan dependensi pada artefak Lifecycle spesifik yang Anda perlukan (mis. lifecycle-service jika menggunakan LifecycleService dan lifecycle-process jika menggunakan ProcessLifecycleOwner), bukan lifecycle-extensions, karena tidak akan ada rilis 2.3.0 selanjutnya untuk lifecycle-extensions.
  • Pemroses Anotasi Inkremental Gradle: Pemroses anotasi Lifecycle bersifat inkremental secara default. Jika aplikasi Anda ditulis dalam bahasa pemrograman Java 8, Anda dapat menggunakan DefautLifecycleObserver; dan jika ditulis dalam bahasa pemrograman Java 7, Anda dapat menggunakan LifecycleEventObserver.

Versi 2.2.0-rc03

4 Desember 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc03 dirilis. Versi 2.2.0-rc03 berisi commit berikut.

Perbaikan bug

  • Memperbaiki kegagalan yang terjadi saat ViewModel tiruan disimpan di ViewModelStore, kemudian diminta dengan setelan pabrik default.
  • Memperbaiki penggunaan Dispatchers.Main.immediate dalam launchWhenCreated dan metode serupa yang akan dipanggil secara tersinkron selama peristiwa siklus proses yang sesuai. (aosp/1156203)

Kontribusi eksternal

  • Terima kasih Anders Järleberg atas kontribusinya untuk perbaikan ini! (aosp/1156203)
  • Terima kasih untuk Vsevolod Tolstopyatov dari Jetbrains karena telah meninjau implementasi eksekusi sisipan.

Perubahan dependensi

  • Ekstensi Lifecycle sekarang bergantung pada Fragment 1.2.0-rc03.

Versi 2.2.0-rc02

7 November 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc02 dirilis. Versi 2.2.0-rc02 berisi commit berikut.

Perbaikan bug

  • Memperbaiki bug dalam penyiapan proguard library yang memengaruhi perangkat yang menjalankan API 28+ jika API target lebih rendah dari 29. (b/142778206)

Versi 2.2.0-rc01

23 Oktober 2019

androidx.lifecycle:lifecycle-*:2.2.0-rc01 dirilis. Versi 2.2.0-rc01 berisi commit berikut.

Perbaikan bug

  • Memperbaiki masalah yang menyebabkan launchWhenCreated dan metode terkait berjalan satu frame lebih lambat dari metode siklus proses yang terkait karena penggunaannya atas Dispatchers.Main, bukan Dispatchers.Main.immediate. (aosp/1145596)

Kontribusi eksternal

  • Terima kasih Nicklas Ansman atas kontribusinya dalam perbaikan ini! (aosp/1145596)

Versi 2.2.0-beta01

9 Oktober 2019

androidx.lifecycle:lifecycle-*:2.2.0-beta01 dirilis. Versi 2.2.0-beta01 berisi commit berikut.

Perbaikan bug

  • Memperbaiki regresi yang diperkenalkan pada Lifecycle 2.2.0-alpha05 dalam pengurutan ProcessLifecycleOwner dan LifecycleOwner aktivitas beralih ke dimulai dan dilanjutkan di perangkat Android 10. (aosp/1128132)
  • Memperbaiki regresi yang diperkenalkan pada Lifecycle 2.2.0-alpha05 yang menyebabkan NullPointerException ketika menggunakan lifecycle-process versi 2.0.0 atau 2.1.0. (b/141536990)

Versi 2.2.0-alpha05

18 September 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha05 dirilis. Versi 2.2.0-alpha05 berisi commit berikut.

Perbaikan bug

  • Memperbaiki kondisi race dalam builder livedata coroutine. b/140249349

Versi 2.2.0-alpha04

5 September 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha04 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • lifecycleScope, whenCreated, whenStarted, whenResumed, viewModelScope, dan implementasi liveData yang mendasari kini menggunakan Dispatchers.Main.immediate, bukan Dispatchers.Main. (b/139740492)

Kontribusi eksternal

  • Terima kasih Nicklas Ansman atas kontribusinya dalam peralihan ke Dispatchers.Main.immediate! (aosp/1106073)

Versi 2.2.0-alpha03

7 Agustus 2019

androidx.lifecycle:lifecycle-*:2.2.0-alpha03 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

Perubahan API

  • ViewModelProviders.of() kini sudah tidak digunakan lagi. Anda dapat meneruskan Fragment atau FragmentActivity ke konstruktor ViewModelProvider(ViewModelStoreOwner) yang baru untuk mendapatkan fungsionalitas yang sama. (aosp/1009889)

Versi 2.2.0-alpha02

2 Juli 2019

androidx.lifecycle:*:2.2.0-alpha02 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • Mengganti LiveDataScope.initialValue dengan LiveDataScope.latestValue yang akan melacak nilai yang dikeluarkan saat ini dari blok liveData.
  • Menambahkan overload baru ke builder liveData yang menerima parameter timeout sebagai jenis Duration

Versi 2.2.0-alpha01

7 Mei 2019

androidx.lifecycle:*:2.2.0-alpha01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Rilis ini menambahkan fitur baru yang menambahkan dukungan untuk coroutine Kotlin untuk Lifecycle dan LiveData. Dokumentasi selengkapnya dapat dilihat di sini.

ViewModel-SavedState Versi 1.0.0

Versi 1.0.0

22 Januari 2020

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0 dirilis. Versi 1.0.0 berisi commit berikut.

Fitur penting dalam versi 1.0.0

  • Class SavedStateHandle baru telah ditambahkan. Dengan demikian, class ViewModel Anda dapat mengakses dan berkontribusi pada status tersimpan. Objek ini dapat diterima dalam konstruktor class ViewModel, dan pabrik yang disediakan secara default oleh Fragment dan AppCompatActivity akan memasukkan SavedStateHandle secara otomatis.
  • AbstractSavedStateViewModelFactory telah ditambahkan. Dengan demikian, Anda sekarang dapat membuat pabrik kustom untuk ViewModel dan memberinya akses ke SavedStateHandle.

ViewModel-Savedstate Versi 1.0.0-rc03

4 Desember 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03 dirilis. Versi 1.0.0-rc03 berisi commit berikut.

Perubahan dependensi

  • Lifecycle ViewModel SavedState sekarang bergantung pada Lifecycle 2.2.0-rc03.

Viewmodel-Savedstate Versi 1.0.0-rc02

7 November 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02 dirilis. Versi 1.0.0-rc02 berisi commit berikut.

Perubahan dependensi

  • Kini bergantung pada siklus proses 2.2.0-rc02.

ViewModel-SavedState Versi 1.0.0-rc01

23 Oktober 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01 dirilis tanpa perubahan dari 1.0.0-beta01. Versi 1.0.0-rc01 berisi commit berikut.

ViewModel-Savedstate Versi 1.0.0-beta01

9 Oktober 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01 dirilis. Versi 1.0.0-beta01 berisi commit berikut.

Perbaikan bug

  • Memperbaiki masalah saat mengakses ViewModel SavedState untuk kali pertama di Activity.onActivityResult() akan menghasilkan IllegalStateException. (b/139093676)
  • Memperbaiki IllegalStateException saat menggunakan AbstractSavedStateViewModelFactory. (b/141225984)

ViewModel-SavedState Versi 1.0.0-alpha05

18 September 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit berikut.

Perubahan API

  • SavedStateViewModelFactory tidak lagi memperluas AbstractSavedStateViewModelFactory dan SavedStateHandle hanya dibuat untuk ViewModel yang memintanya aosp/1113593)

ViewModel-SavedState Versi 1.0.0-alpha03

7 Agustus 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan yang Dapat Menyebabkan Gangguan

ViewModel-SavedState Versi 1.0.0-alpha02

2 Juli 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Menambahkan overload SavedStateHandle.getLiveData() yang menerima nilai default.

Perubahan API

  • SavedStateVMFactory diganti namanya menjadi SavedStateViewModelFactory.
  • AbstractSavedStateVMFactory diganti namanya menjadi AbstractSavedStateViewModelFactory.

ViewModel-Savedstate Versi 1.0.0-alpha01

13 Maret 2019

androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01 dirilis. Log commit lengkap untuk rilis awal ini dapat dilihat di sini.

Fitur baru

  • ViewModels sekarang dapat berkontribusi pada savedstate. Untuk melakukannya, gunakan setelan pabrik viewmodel SavedStateVMFactory yang baru saja diperkenalkan, dan ViewModel Anda harus memiliki konstruktor yang menerima objek SavedStateHandle sebagai parameter.

Versi 2.1.0

Perubahan penting sejak 2.0.0

  • Menambahkan LifecycleEventObserver untuk situasi ketika aliran peristiwa siklus proses diperlukan. API ini merupakan API publik, bukan class GenericLifecycleObserver tersembunyi.
  • Menambahkan ekstensi ktx untuk metode LiveData.observe dan metode Transformations.*.
  • Menambahkan Transformations.distinctUntilChanged, yang membuat objek LiveData baru yang tidak mengeluarkan nilai hingga nilai LiveData sumber telah diubah.
  • Menambahkan dukungan coroutine dalam ViewModel dengan menambahkan properti ekstensi ViewModel.viewModelScope.

Versi 2.1.0

5 September 2019

androidx.lifecycle:lifecycle-*:2.1.0 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Versi 2.1.0-rc01

2 Juli 2019

androidx.lifecycle:*:2.1.0-rc01 dirilis tanpa perubahan dari androidx.lifecycle:*:2.1.0-beta01. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Versi 2.1.0-beta01

7 Mei 2019

androidx.lifecycle:*:2.1.0-beta01 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Fitur baru

  • Lifecycle beralih ke beta: API yang diperkenalkan dalam rilis alfa sebelumnya, seperti fungsi ekstensi liveData untuk transformasi dan observasi, inisialisasi ViewModel dengan delegasi properti, dan lainnya distabilkan dan tidak akan berubah.

Versi 2.1.0-alpha04

3 April 2019

androidx.lifecycle:*:2.1.0-alpha04 dirilis. Commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • Perubahan yang dapat menyebabkan gangguan: API yang digunakan di balik by viewModels() dan by activityViewModels() telah diubah untuk mendukung ViewModelStore secara langsung, bukan hanya ViewModelStoreOwner. (aosp/932932)

Versi 2.1.0-alpha03

13 Maret 2019

androidx.lifecycle:*:2.1.0-alpha03 dirilis. Daftar lengkap commit yang disertakan dalam versi ini dapat dilihat di sini.

Perubahan API

  • ViewModelProvider.KeyedFactory telah dihapus. Antarmuka kedua selain ViewModelProvider.Factory tidak ditulis dengan baik dengan fitur-fitur baru sebagai delegasi properti di Kotlin by viewmodels {}. (aosp/914133)

Versi 2.1.0-alpha02

30 Januari 2019

androidx.lifecycle 2.1.0-alpha02 dirilis.

Perubahan API

  • LifecycleRegistry kini menyertakan metode setCurrentState() untuk menggantikan metode setState() yang sekarang sudah tidak digunakan lagi. (aosp/880715)

Perbaikan bug

  • Memperbaiki masalah dengan instance ViewModel palsu yang mengalami error jika ViewModelStore yang memuatnya dihapus. b/122273087

Versi 2.1.0-alpha01

17 Desember 2018

androidx.lifecycle 2.1.0-alpha01 dirilis.

Fitur baru

  • Menambahkan LifecycleEventObserver untuk situasi ketika aliran peristiwa siklus proses diperlukan. API ini merupakan API publik, bukan class GenericLifecycleObserver tersembunyi.
  • Menambahkan ekstensi ktx untuk metode LiveData.observe dan metode Transformations.*.
  • Metode Transformations.distinctUntilChanged telah ditambahkan. Penambahan ini membuat objek LiveData baru yang tidak mengeluarkan nilai hingga nilai LiveData sumber telah diubah.
  • Dukungan Coroutine di ViewModel: properti ekstensi ViewModel.viewModelScope ditambahkan.
  • Menambahkan ViewModelProvider.KeyedFactory, setelan pabrik untuk ViewModel yang menerima key dan Class dalam metode create.

Versi 2.0.0

Versi 2.0.0

21 September 2018

Lifecycle 2.0.0 dirilis dengan satu perbaikan bug dari 2.0.0-rc01 dalam ViewModel.

Perbaikan Bug

  • Memperbaiki aturan proguard ViewModel yang salah menghapus konstruktor b/112230489

Versi 2.0.0-beta01

2 Juli 2018

Perbaikan Bug

  • Memperbaiki aturan proguard LifecycleObserver agar hanya mempertahankan implementasi, bukan sub-antarmuka b/71389427
  • Memperbaiki aturan proguard ViewModel untuk memungkinkan obfuscation dan penciutan

Versi Pra-AndroidX

Untuk versi Lifecycle pra-AndroidX, sertakan dependensi berikut:

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"
}

Versi 1.1.1

21 Maret 2018

Hanya satu perubahan kecil: android.arch.core.util.Function dipindahkan dari arch:runtime ke arch:common. Pemindahan tersebut memungkinkan class ini untuk digunakan tanpa dependensi runtime, misalnya dalam paging:common di bawah.

lifecycle:common merupakan dependensi dari lifecycle:runtime sehingga perubahan ini tidak memengaruhi lifecycle:runtime secara langsung, hanya modul yang bergantung secara langsung pada lifecycle:common, seperti yang dilakukan oleh Paging.

Versi 1.1.0

22 Januari 2018

Perubahan Paket

Dependensi baru yang jauh lebih kecil sekarang tersedia:

  • android.arch.lifecycle:livedata:1.1.0
  • android.arch.lifecycle:viewmodel:1.1.0

Perubahan API

  • LifecycleActivity dan LifecycleFragment yang sudah tidak digunakan lagi sekarang telah dihapus. Harap gunakan FragmentActivity, AppCompatActivity, atau dukung Fragment.
  • Anotasi @NonNull telah ditambahkan ke ViewModelProviders dan ViewModelStores
  • Konstruktor ViewModelProviders tidak digunakan lagi. Gunakan metode statisnya secara langsung
  • ViewModelProviders.DefaultFactory tidak digunakan lagi - harap gunakan ViewModelProvider.AndroidViewModelFactory
  • Metode ViewModelProvider.AndroidViewModelFactory.getInstance(Application) statis telah ditambahkan untuk mengambil Factory statis yang cocok untuk membuat instance ViewModel dan AndroidViewModel.