Lifecycle
最新の更新 | 現在の安定版リリース | 次のリリース候補 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2020 年 12 月 16 日 | 2.2.0 | 2.3.0-rc01 | - | - |
依存関係の宣言
Lifecycle への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Kotlin
dependencies { def lifecycle_version = "2.3.1" 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" // Jetpack Compose Integration for ViewModel implementation "androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04" // 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.3.1" 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" }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 2.3.0
バージョン 2.3.0-rc01
2020 年 12 月 16 日
androidx.lifecycle:lifecycle-*:2.3.0-rc01
がリリースされました。バージョン 2.3.0-rc01 に含まれるコミットについては、こちらをご覧ください。
バグの修正
SavedStateHandle
のkeys()
メソッドについて、状態の保存前と保存後で整合性が保たれるようになりました。set()
とgetLiveData()
で使用されるキーに加えて、これまでsetSavedStateProvider()
で使用されていたキーが含まれるようになりました。(aosp/1517919、b/174713653)
外部からの協力
- ライフサイクル対応コルーチンを中断する API が、
yield()
の呼び出しを適切に処理できるようになりました。Nicklas Ansman Giertz 氏に感謝いたします。(aosp/1430830、b/168777346)
バージョン 2.3.0-beta01
2020 年 10 月 1 日
androidx.lifecycle:lifecycle-*:2.3.0-beta01
がリリースされました。バージョン 2.3.0-beta01 に含まれるコミットについては、こちらをご覧ください。
API の変更
- ラムダ構文を使用するために必要な
LiveData.observe()
Kotlin 拡張機能のサポートが終了しました(Kotlin 1.4 を使用する際は不要となるため)。(I40d3f)
バグの修正
- Kotlin 1.4 を使用できるように、AndroidX をアップグレードしました。(Id6471、b/165307851、b/165300826)
ドキュメントの変更
- 特定のタイムアウト値の変更に関する詳細が含まれるように、
liveData
ビルダーとasLiveData()
ドキュメントが更新されました。(aosp/1122324)
バージョン 2.3.0-alpha07
2020 年 8 月 19 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha07
がリリースされました。バージョン 2.3.0-alpha07 に含まれるコミットについては、こちらをご覧ください。
バグの修正
NullSafeMutableLiveData
lint チェックで発生するクラッシュの問題を修正しました。(aosp/1395367)
バージョン 2.3.0-alpha06
2020 年 7 月 22 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha06
がリリースされました。バージョン 2.3.0-alpha06 に含まれるコミットについては、こちらをご覧ください。
新機能
State
と遷移方向に応じてEvent
を生成するため、downFrom(State)
、downTo(State)
、upFrom(State)
、upTo(State)
の静的ヘルパー メソッドをLifecycle.Event
に追加しました。Lifecycle がEvent
の後で直接移行するState
を提供するgetTargetState()
メソッドを追加しました。(I00887)Lifecycle.withStateAtLeast
API を追加しました。これらの API は、ライフサイクルの状態を待機し、状態が変化した時点でコードの非停止ブロックを同期的に実行して、その結果により再開します。これらの API は、停止コードの実行を許可せず、カスタム ディスパッチャを使用しない点で、既存のwhen*
メソッドと異なります。(aosp/1326081)
動作の変更
- LifecycleRegistry は最終状態として
DESTROYED
を適用するようになりました。(I00887) LifecycleRegistry
は、そのメソッドがメインスレッドで呼び出されることを確認するようになりました。これは、アクティビティやフラグメントなどのライフサイクルでは常に必須でしたが、メインスレッド以外のスレッドからオブザーバーを追加すると、実行時にクラッシュをキャッチすることが困難になっていました。独自のコンポーネントが所有するLifecycleRegistry
オブジェクトでは、LifecycleRegistry.createUnsafe(...)
を使用して明示的にチェックをオプトアウトできますが、その場合、このLifecycleRegistry
が別のスレッドからアクセスされたときに適切な同期が行われることを保証する必要があります。(Ie7280、b/137392809)
バグの修正
NullSafeMutableLiveData
で発生するクラッシュを解決しました。(b/159987480)lifecycle-livedata-core-ktx
(および特にNullSafeMutableLiveData
)にバンドルされている lint チェックのObsoleteLintCustomCheck
を修正しました。(b/158699265)
バージョン 2.3.0-alpha05
2020 年 6 月 24 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha05
がリリースされました。バージョン 2.3.0-alpha05 に含まれるコミットについては、こちらをご覧ください。
バグの修正
LiveData
でリエントラントの処理が改善され、onActive()
またはonInactive()
への呼び出しの重複を防ぐようになりました(b/157840298)。- Android Studio 4.1 Canary 6 以上を使用している場合に Lint チェックが行われない問題を修正しました(aosp/1331903)。
バージョン 2.3.0-alpha04
2020 年 6 月 10 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha04
がリリースされました。バージョン 2.3.0-alpha04 に含まれるコミットについては、こちらをご覧ください。
バグの修正
NonNullableMutableLiveData
lint チェックで発生するクラッシュを修正しました。(b/157294666)NonNullableMutableLiveData
lint チェックが、非 null 型のパラメータを持つMutableLiveData
にnull
値が設定されているケースを大幅にカバーするようになりました。(b/156002218)
バージョン 2.3.0-alpha03
2020 年 5 月 20 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha03
がリリースされました。バージョン 2.3.0-alpha03 に含まれるコミットについては、こちらをご覧ください。
新機能
- 指定されたキーの
setSavedStateProvider()
を呼び出せるようにすることで、SavedStateHandle
が遅延シリアル化をサポートするようになりました。SavedStateHandle
が状態を保存するよう求められたときにsaveState()
へのコールバックを取得するSavedStateProvider
を提供します。(b/155106862) - 新しい
ViewTreeViewModelStoreOwner.get(View)
API を使用すると、View
インスタンスを指定して、含まれているViewModelStoreOwner
を取得できます。これを正しく入力するには、Activity1.2.0-alpha05
、Fragment1.3.0-alpha05
、AppCompat1.3.0-alpha01
にアップグレードする必要がありますfindViewModelStoreOwner()
Kotlin 拡張機能がlifecycle-viewmodel-ktx
に追加されました。(aosp/1295522)
バグの修正
- Lifecycle
2.3.0-alpha01
でリリースされたMutableLiveData
lint チェックがlifecycle-livedata-core-ktx
アーティファクトと一緒に公開されない問題を修正しました。(b/155323109)
バージョン 2.3.0-alpha02
2020 年 4 月 29 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha02
がリリースされました。バージョン 2.3.0-alpha02 に含まれるコミットについては、こちらをご覧ください。
API の変更
SavedStateViewModelFactory
を使用することで、null のApplication
をコンストラクタに渡せるようになりました。これにより、Application がすぐに利用できず、AndroidViewModel
のサポートが不要な場合のサポートが向上しました。(aosp/1285740)
バグの修正
- API 28 以前のデバイスでのクラス検証エラーを回避することで、コールド スタートのパフォーマンスを改善しました。(aosp/1282118)
バージョン 2.3.0-alpha01
2020 年 3 月 4 日
androidx.lifecycle:lifecycle-*:2.3.0-alpha01
がリリースされました。バージョン 2.3.0-alpha01 に含まれるコミットについては、こちらをご覧ください。
新機能
- 新しい
ViewTreeLifecycleOwner.get(View)
API を使用すると、View
インスタンスを指定して、含まれているLifecycleOwner
を取得できます。これを正しく入力するには、Activity1.2.0-alpha01
と Fragment1.3.0-alpha01
にアップグレードする必要があります。findViewTreeLifecycleOwner
Kotlin 拡張機能はlifecycle-runtime-ktx
で利用できます。(aosp/1182361、aosp/1182956) - Kotlin で非 null として定義されている
MutableLiveData
にnull
値を設定すると警告する、新しい Lint チェックを追加しました。これは、livedata-core-ktx
またはlivedata-ktx
アーティファクトを使用する場合に利用できます。(aosp/1154723、aosp/1159092) LifecycleOwner
を実装するTestLifecycleOwner
を提供し、スレッドセーフで変更可能なLifecycle
を提供する、新しいlifecycle-runtime-testing
アーティファクトを利用できます。(aosp/1242438)
バグの修正
lifecycle-runtime
アーティファクトが一意のパッケージ名を持つようになりました。(aosp/1187196)
バージョン 2.2.0
ViewModel-Savedstate バージョン 2.2.0
2020 年 2 月 5 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0
がリリースされました。バージョン 2.2.0 に含まれるコミットについては、こちらをご覧ください。
Lifecycle ViewModel SavedState は他の Lifecycle アーティファクトと同じバージョンを共有するようになりました。2.2.0
の動作は 1.0.0
の動作と同じです。
バージョン 2.2.0
2020 年 1 月 22 日
androidx.lifecycle:lifecycle-*:2.2.0
がリリースされました。バージョン 2.2.0 に含まれる commit については、こちらをご覧ください。
2.1.0 以降の重要な変更
- Lifecycle コルーチンの統合: 新しい
lifecycle-runtime-ktx
アーティファクトにより、Lifecycle コルーチンと Kotlin コルーチンとの統合機能が追加されています。また、コルーチンを活用できるようにlifecycle-livedata-ktx
が拡張されました。詳細については、アーキテクチャ コンポーネントで Kotlin コルーチンを使用するをご覧ください。 ViewModelProviders.of()
のサポート終了:ViewModelProviders.of()
のサポートが終了しました。Fragment1.2.0
を使用する場合、Fragment
またはFragmentActivity
を新しいViewModelProvider(ViewModelStoreOwner)
コンストラクタに渡すと、同じ機能を実現できます。lifecycle-extensions
アーティファクトのサポート終了: 上記ViewModelProviders.of()
のサポート終了をもって、このリリースのlifecycle-extensions
で最後に残った API がサポート終了となったため、このアーティファクトは完全にサポート終了とみなされます。今後リリースされる2.3.0
にlifecycle-extensions
が含まれる予定はないため、lifecycle-extensions
ではなく、必要な Lifecycle アーティファクト(たとえば、LifecycleService
を使用している場合はlifecycle-service
、ProcessLifecycleOwner
を使用している場合はlifecycle-process
)を利用することを強くおすすめします。- Gradle Incremental Annotation Processor: Lifecycle のアノテーション プロセッサはデフォルトでインクリメンタルです。
アプリが Java 8 プログラミング言語で作成されている場合は
DefautLifecycleObserver
を、Java 7 の場合はLifecycleEventObserver
を使用できます。
バージョン 2.2.0-rc03
2019 年 12 月 4 日
androidx.lifecycle:lifecycle-*:2.2.0-rc03
がリリースされました。バージョン 2.2.0-rc03 に含まれる commit については、こちらをご覧ください。
バグの修正
- モックされた
ViewModel
がViewModelStore
に保存され、後でデフォルト ファクトリでクエリが実行されたときに発生するエラーを修正しました。 launchWhenCreated
および同様のメソッドでDispatchers.Main.immediate
が対応するライフサイクル イベント中に同期的に呼び出されるように修正しています。(aosp/1156203)
外部寄与
- 本修正に寄与した AndersJärleberg 氏に感謝いたします。(aosp/1156203)
- インライン実行の実装に対するレビューを実施した JetBrains 社の Vsevolod Tolstopyatov 氏に感謝いたします。
依存関係の変更
- Lifecycle Extensions が Fragment
1.2.0-rc03
に依存するようになりました。
バージョン 2.2.0-rc02
2019 年 11 月 7 日
androidx.lifecycle:lifecycle-*:2.2.0-rc02
がリリースされました。バージョン 2.2.0-rc02 に含まれるコミットについては、こちらをご覧ください。
バグの修正
- ライブラリの ProGuard セットアップのバグを修正しました。このライブラリは、ターゲット API が 29 未満の場合、API 28 以降を搭載しているデバイスに影響します。(b/142778206)
バージョン 2.2.0-rc01
2019 年 10 月 23 日
androidx.lifecycle:lifecycle-*:2.2.0-rc01
がリリースされました。バージョン 2.2.0-rc01 に含まれるコミットについては、こちらをご覧ください。
バグの修正
Dispatchers.Main.immediate
の代わりにDispatchers.Main
を使用するため、launchWhenCreated
と関連メソッドが関連するライフサイクル メソッドより 1 フレーム遅れて実行される問題を修正しました。(aosp/1145596)
外部寄与
- 本修正に寄与した Nicklas Ansman 氏に感謝いたします。(aosp/1145596)
バージョン 2.2.0-beta01
2019 年 10 月 9 日
androidx.lifecycle:lifecycle-*:2.2.0-beta01
がリリースされました。バージョン 2.2.0-beta01 に含まれるコミットについては、こちらをご覧ください。
バグの修正
ProcessLifecycleOwner
の順序で Lifecycle 2.2.0-alpha05 に生じる回帰と、アクティビティのLifecycleOwner
が Android 10 デバイスで開始および再開に移行する問題を修正しました。(aosp/1128132)- Lifecycle
2.2.0-alpha05
で生じる回帰を修正しました。バージョン2.0.0
や2.1.0
のlifecycle-process
を使用するとNullPointerException
が発生していました。(b/141536990)
バージョン 2.2.0-alpha05
2019 年 9 月 18 日
androidx.lifecycle:lifecycle-*:2.2.0-alpha05
がリリースされました。バージョン 2.2.0-alpha05 に含まれるコミットについては、こちらをご覧ください。
バグの修正
- コルーチンのライブデータ ビルダーの競合状態を修正しました。(b/140249349)
バージョン 2.2.0-alpha04
2019 年 9 月 5 日
androidx.lifecycle:lifecycle-*:2.2.0-alpha04
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
新機能
lifecycleScope
、whenCreated
、whenStarted
、whenResumed
、viewModelScope
、またliveData
の基となる実装では、Dispatchers.Main
ではなくDispatchers.Main.immediate
が使用されるようになりました。(b/139740492)
外部寄与
Dispatchers.Main.immediate
への移行に寄与した Nicklas Ansman 氏に感謝いたします。(aosp/1106073)
バージョン 2.2.0-alpha03
2019 年 8 月 7 日
androidx.lifecycle:lifecycle-*:2.2.0-alpha03
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
新機能
ViewModelStoreOwner
の実装では、オプションでHasDefaultViewModelProviderFactory
を実装して、デフォルトのViewModelProvider.Factory
を提供できるようになりました。これは Activity1.1.0-alpha02
、Fragment1.2.0-alpha02
、Navigation2.2.0-alpha01
に対して行われました。(aosp/1092370、b/135716331)
API の変更
ViewModelProviders.of()
が非推奨になりました。Fragment
またはFragmentActivity
を新しいViewModelProvider(ViewModelStoreOwner)
コンストラクタに渡すと、同じ機能を実現できます。(aosp/1009889)
バージョン 2.2.0-alpha02
2019 年 7 月 2 日
androidx.lifecycle:*:2.2.0-alpha02
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
API の変更
LiveDataScope.initialValue
を、liveData
ブロックの現在の出力値をトラックするLiveDataScope.latestValue
に置き換えました。- タイプ
Duration
としてtimeout
パラメータを受け取るliveData
ビルダーに新しいオーバーロードを追加しました。
Version 2.2.0-alpha01
2019 年 5 月 7 日
androidx.lifecycle:*:2.2.0-alpha01
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
新機能
- このリリースでは、Lifecycle と LiveData の Kotlin コルーチンのサポートを追加する新機能が追加されています。 詳細なドキュメントについては、こちらをご覧ください。
ViewModel-SavedState バージョン 1.0.0
バージョン 1.0.0
2020 年 1 月 22 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0
がリリースされました。バージョン 1.0.0 に含まれるコミットについては、こちらをご覧ください。
1.0.0 の重要な機能
- 新しい SavedStateHandle クラスが追加されました。これにより、
ViewModel
クラスが保存済み状態にアクセスして簡単に扱うことができるようになります。このオブジェクトはViewModel
クラスのコンストラクタで受け取ることができ、Fragment によってデフォルトで提供されるファクトリと AppCompatActivity がSavedStateHandle
を自動的に追加します。 - AbstractSavedStateViewModelFactory が追加されました。
ViewModel
のカスタム ファクトリを作成し、これらのファクトリがSavedStateHandle
にアクセスできるようにします。
ViewModel-SavedState バージョン 1.0.0-rc03
2019 年 12 月 4 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc03
がリリースされました。バージョン 1.0.0-rc03 に含まれるコミットについては、こちらをご覧ください。
依存関係の変更
- Lifecycle ViewModel SavedState は Lifecycle
2.2.0-rc03
に依存するようになりました。
ViewModel-Savedstate バージョン 1.0.0-rc02
2019 年 11 月 7 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc02
がリリースされました。バージョン 1.0.0-rc02 に含まれるコミットについては、こちらをご覧ください。
依存関係の変更
- Lifecycle
2.2.0-rc02
に依存するようになりました。
ViewModel-SavedState バージョン 1.0.0-rc01
2019 年 10 月 23 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-rc01
がリリースされました。1.0.0-beta01
からの変更はありません。バージョン 1.0.0-rc01 に含まれるコミットについては、こちらをご覧ください。
ViewModel-Savedstate バージョン 1.0.0-beta01
2019 年 10 月 9 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれるコミットについては、こちらをご覧ください。
バグの修正
Activity.onActivityResult()
で SavedState ViewModel に初めてアクセスするとIllegalStateException
が発生する問題を修正しました。(b/139093676)AbstractSavedStateViewModelFactory
の使用時のIllegalStateException
を修正しました。(b/141225984)
ViewModel-SavedState バージョン 1.0.0-alpha05
2019 年 9 月 18 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれるコミットについては、こちらをご覧ください。
API の変更
SavedStateViewModelFactory
はAbstractSavedStateViewModelFactory
を拡張することはなく、SavedStateHandle
は ViewModel が必要とする場合にのみ作成されます。(aosp/1113593)
ViewModel-SavedState バージョン 1.0.0-alpha03
2019 年 8 月 7 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
互換性を破る変更
lifecycle-viewmodel-savedstate
がfragment
に依存しなくなり、関連するSavedStateViewModelFactory(Fragment)
とSavedStateViewModelFactory(FragmentActivity)
のコンストラクタが削除されました。代わりにSavedStateViewModelFactory
が、Activity1.1.0-alpha02
、Fragment1.2.0-alpha02
、Navigation2.2.0-alpha01
のデフォルト ファクトリになりました。(b/135716331)
ViewModel-SavedState バージョン 1.0.0-alpha02
2019 年 7 月 2 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha02
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
新機能
- デフォルト値を受け入れる
SavedStateHandle.getLiveData()
オーバーロードを追加しました。
API の変更
SavedStateVMFactory
の名前がSavedStateViewModelFactory
に変更されました。AbstractSavedStateVMFactory
の名前がAbstractSavedStateViewModelFactory
に変更されました。
ViewModel-Savedstate バージョン 1.0.0-alpha01
2019 年 3 月 13 日
androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01
がリリースされました。この初回リリースの完全なコミットログについては、こちらをご覧ください。
新機能
ViewModels
で savedstate を使用できるようになりました。そのためには、新しく導入されたビューモデルのファクトリSavedStateVMFactory
を使用し、ViewModel にはパラメータとしてSavedStateHandle
オブジェクトを受け取るコンストラクタが必要です。
バージョン 2.1.0
2.0.0 以降の重要な変更
- ライフサイクル イベントのストリームが必要な場合のために、
LifecycleEventObserver
を追加しました。非表示のGenericLifecycleObserver
クラスではなく、公開 API です。 LiveData.observe
メソッドとTransformations.*
メソッドの ktx 拡張機能を追加しました。- ソースの
LiveData
値が変更されるまで値を出力しない新しい LiveData オブジェクトを作成する、Transformations.distinctUntilChanged
を追加しました。 - 拡張プロパティ
ViewModel.viewModelScope
を追加することで、ViewModels にコルーチンのサポートを追加しました。
バージョン 2.1.0
2019 年 9 月 5 日
androidx.lifecycle:lifecycle-*:2.1.0
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
バージョン 2.1.0-rc01
2019 年 7 月 2 日
androidx.lifecycle:*:2.1.0-rc01
がリリースされました。androidx.lifecycle:*:2.1.0-beta01
からの変更はありません。このバージョンに含まれるコミットについては、こちらをご覧ください。
バージョン 2.1.0-beta01
2019 年 5 月 7 日
androidx.lifecycle:*:2.1.0-beta01
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
新機能
- Lifecycle はベータ版に進みました。変換と観察のための
liveData
拡張関数、プロパティ委任によるViewModel
初期化など、以前のアルファ版で導入された API は安定しており、変更予定はありません。
バージョン 2.1.0-alpha04
2019 年 4 月 3 日
androidx.lifecycle:*:2.1.0-alpha04
がリリースされました。このバージョンに含まれるコミットについては、こちらをご覧ください。
API の変更
- 互換性を破る変更:
by viewModels()
とby activityViewModels()
の基になる API は、ViewModelStoreOwner
だけでなくViewModelStore
を直接サポートするように変更されました。(aosp/932932)
バージョン 2.1.0-alpha03
2019 年 3 月 13 日
androidx.lifecycle:*:2.1.0-alpha03
がリリースされました。このバージョンに含まれるコミットの完全なリストについては、こちらをご覧ください。
API の変更
ViewModelProvider.KeyedFactory
が削除されました。ViewModelProvider.Factory
に続く 2 番目のインターフェースでしたが、Kotlin のby viewmodels {}
のプロパティ委任の新機能と十分にコンポーズしませんでした。(aosp/914133)
バージョン 2.1.0-alpha02
2019 年 1 月 30 日
androidx.lifecycle 2.1.0-alpha02
がリリースされました。
API の変更
LifecycleRegistry
にsetCurrentState()
メソッドが追加されました。このメソッドは、サポートが終了したsetState()
メソッドを置き換えるものです。(aosp/880715)
バグの修正
- 含まれている
ViewModelStore
がクリアされるとモックのViewModel
インスタンスがクラッシュするという問題を修正しました。(b/122273087)
バージョン 2.1.0-alpha01
2018 年 12 月 17 日
androidx.lifecycle 2.1.0-alpha01
がリリースされました。
新機能
- ライフサイクル イベントのストリームが必要な場合のために、
LifecycleEventObserver
を追加しました。非表示のGenericLifecycleObserver
クラスではなく、公開 API です。 LiveData.observe
メソッドとTransformations.*
メソッドの ktx 拡張機能を追加しました。- メソッド
Transformations.distinctUntilChanged
が追加されました。ソースの LiveData 値が変更されるまで値を出力しない新しいLiveData
オブジェクトを作成します。 - ViewModels のコルーチンのサポート: 拡張プロパティ
ViewModel.viewModelScope
が追加されました。 ViewModelProvider.KeyedFactory
を追加しました。create
メソッドでkey
とClass
を受け取る ViewModels のファクトリです。
バージョン 2.0.0
バージョン 2.0.0
2018 年 9 月 21 日
Lifecycle 2.0.0
のリリースでは、ViewModel に関する 2.0.0-rc01
のバグが 1 件修正されています。
バグの修正
- コンストラクタを誤って削除する ViewModel ProGuard ルールを修正しました。b/112230489
バージョン 2.0.0-beta01
2018 年 7 月 2 日
バグの修正
- 実装のみを保持し、サブインターフェースは保持しないように LifecycleObserver ProGuard ルールを修正しました。b/71389427
- 難読化と圧縮を許可するように ViewModel ProGuard ルールを修正しました。
AndroidX 以前のバージョン
AndroidX 以前のバージョンの Lifecycle では、次の依存関係を含めます。
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"
}
バージョン 1.1.1
2018 年 3 月 21 日
1 つの小規模な変更のみ: android.arch.core.util.Function
が arch:runtime
から arch:common
に移動されました。これにより、(下記の paging:common
のような)ランタイムの依存関係がなくてもこのメソッドを使用できるようになりました。
lifecycle:common
は lifecycle:runtime
の依存関係であるため、この変更による lifecycle:runtime
への直接的な影響はありません。影響を受けるのは、Paging と同様に、lifecycle:common
に直接依存するモジュールだけです。
バージョン 1.1.0
2018 年 1 月 22 日
パッケージの変更
以下の新しい、極めて小さな依存関係を利用できるようになりました。
android.arch.lifecycle:livedata:1.1.0
android.arch.lifecycle:viewmodel:1.1.0
API の変更
- サポートが終了した
LifecycleActivity
とLifecycleFragment
は削除されました。FragmentActivity
、AppCompatActivity
を使用するか、Fragment
をサポートしてください。 @NonNull
アノテーションがViewModelProviders
とViewModelStores
に追加されました。ViewModelProviders
コンストラクタのサポートが終了しました。その静的メソッドを直接使用してください。ViewModelProviders.DefaultFactory
のサポートが終了しました。ViewModelProvider.AndroidViewModelFactory
を使用してください。- 静的な
ViewModelProvider.AndroidViewModelFactory.getInstance(Application)
メソッドが追加され、ViewModel
インスタンスやAndroidViewModel
インスタンスの作成に適した静的なFactory
を取得できるようになりました。