アクティビティ
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 9 月 4 日 | 1.9.2 | - | - | 1.10.0-alpha02 |
依存関係の宣言
Activity への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { def activity_version = "1.9.2" // Java language implementation implementation "androidx.activity:activity:$activity_version" // Kotlin implementation "androidx.activity:activity-ktx:$activity_version" }
Kotlin
dependencies { val activity_version = "1.9.2" // Java language implementation implementation("androidx.activity:activity:$activity_version") // Kotlin implementation("androidx.activity:activity-ktx:$activity_version") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.10
バージョン 1.10.0-alpha02
2024 年 9 月 4 日
androidx.activity:activity:1.10.0-alpha02
、androidx.activity:activity-compose:1.10.0-alpha02
、androidx.activity:activity-ktx:1.10.0-alpha02
がリリースされました。バージョン 1.10.0-alpha02 に含まれる commit については、こちらをご覧ください。
動作の変更
- システムの写真選択ツールが使用できない場合、写真選択ツールをトリガーする
PickVisualMedia
およびPickMultipleVisualMedia
Activity Result コントラクトが Google Play 開発者サービスに直接デリゲートしなくなりました。代わりに、公開されているACTION_SYSTEM_FALLBACK_PICK_IMAGES
アクションと関連エクストラを使用して、フォールバックとして OEM とシステムアプリに一貫した写真選択ツールのエクスペリエンスを提供します。この問題は、Google Play 開発者サービスの最新版がインストールされているデバイスのユーザー エクスペリエンスには影響しません。(I3513d)。
バグの修正
- 新しいプラットフォーム API へのアクセスに関する手動概要を削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合は API モデリングを介して自動的に行われ、AGP 8.1 以降(D8 バージョン 8.1 など)を使用する場合はすべてのビルドで行われるためです。AGP を使用していないクライアントには、D8 バージョン 8.1 以降に更新することが推奨されます。詳しくは、こちらの記事をご覧ください。(I9496c、b/345472586)。
- Activity
1.9.2
以降: Activity ComposePredictiveBackHandler
API が、無効化されたフレームでシステムの「戻る」ジェスチャーを引き続き処理し続ける問題を修正しました。これにより、Navigation Compose などのライブラリが空のバックスタックでも「戻る」処理を行い、IndexOutOfBoundsException
がスローされる問題を修正しました。(Ie3301、b/340202286)。 - Activity
1.9.1
から: システムを元に戻した後にOnBackPressedDispatcher
からonBackPressed
を実行しようとすると失敗するPredictiveBackHandler
の問題を修正しました。(I5f1f8)。
バージョン 1.10.0-alpha01
2024 年 6 月 26 日
androidx.activity:activity:1.10.0-alpha01
、androidx.activity:activity-compose:1.10.0-alpha01
、androidx.activity:activity-ktx:1.10.0-alpha01
がリリースされました。このバージョンは内部ブランチで開発されています。
新機能
- Android V で導入された新しい
PhotoPicker
機能のサポートが追加されました。たとえば、画像を順番に選択して、最初に表示するタブ(アルバムまたは画像)を選択できるようになりました。
バージョン 1.9
バージョン 1.9.2
2024 年 9 月 4 日
androidx.activity:activity:1.9.2
、androidx.activity:activity-compose:1.9.2
、androidx.activity:activity-ktx:1.9.2
がリリースされました。バージョン 1.9.2 には、これらの lthcocommit が含まれています。
バグの修正
- Activity Compose
PredictiveBackHandler
API が、無効化されたフレームでシステムの「戻る」ジェスチャーを引き続き処理し、空のバックスタックがあっても Navigation Compose などのライブラリが戻る処理を行い、IndexOutOfBoundsException
をスローする問題を修正しました。(Ie3301、b/340202286)。
バージョン 1.9.1
2024 年 7 月 24 日
androidx.activity:activity:1.9.1
、androidx.activity:activity-compose:1.9.1
、androidx.activity:activity-ktx:1.9.1
がリリースされました。バージョン 1.9.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- システムを元に戻した後に
OnBackPressedDispatcher
からonBackPressed
を実行しようとすると失敗するPredictiveBackHandler
の問題を修正しました。(I5f1f8)。
バージョン 1.9.0
2024 年 4 月 17 日
androidx.activity:activity:1.9.0
、androidx.activity:activity-compose:1.9.0
、androidx.activity:activity-ktx:1.9.0
がリリースされました。バージョン 1.9.0 に含まれる commit については、こちらをご覧ください。
1.8.0 以降の重要な変更
ComponentActivity
でOnUserLeaveHintProvider
が実装され、コンポーネントがonUserLeaveHint
イベントのコールバックを行えるようになりました。OnBackPressedCallback
、BackHandler
、PredictiveBackHandler
の各 API は、戻る処理でonBackPressedDispatcher.onBackPressed()
を呼び出すと警告を表示するようになりました。これは、予測型「戻る」アニメーションが常に中断されるためです。詳しくは、ベスト プラクティス ガイドをご覧ください。- 残りの Activity API は Kotlin で書き換えられ、これまで
activity-ktx
で使用できた拡張機能はすべてactivity
に移動しました。activity-ktx
が完全に空になりました。ActivityResultLauncher
から Kotlin への変換の一環として、getContract
メソッドが Kotlin 抽象プロパティになりました。これはバイナリ互換の変更ですが、ActivityResultLauncher
の実装が Kotlin で記述されている場合、ソースが破損します。
バージョン 1.9.0-rc01
2024 年 4 月 3 日
androidx.activity:activity:1.9.0-rc01
、androidx.activity:activity-compose:1.9.0-rc01
、androidx.activity:activity-ktx:1.9.0-rc01
がリリースされました。バージョン 1.9.0-rc01 に含まれる commit については、こちらをご覧ください。
依存関係の更新
- アクティビティがプロファイル インストーラ 1.3.1 に依存するようになりました。
バージョン 1.9.0-beta01
2024 年 3 月 20 日
androidx.activity:activity:1.9.0-beta01
、androidx.activity:activity-compose:1.9.0-beta01
、androidx.activity:activity-ktx:1.9.0-beta01
がリリースされました。バージョン 1.9.0-beta01 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity
1.9.0-alpha02
で発生していた、Activity の作成の一環としてOnBackPressedDispatcher
が呼び出されることで発生する、Activity の起動時のパフォーマンス低下を修正しました。(Ie75e3)。
バージョン 1.9.0-alpha03
2024 年 2 月 7 日
androidx.activity:activity:1.9.0-alpha03
、androidx.activity:activity-compose:1.9.0-alpha03
、androidx.activity:activity-ktx:1.9.0-alpha03
がリリースされました。バージョン 1.9.0-alpha03 に含まれる commit については、こちらをご覧ください。
lint の警告
OnBackPressedCallback
、BackHandler
、PredictiveBackHandler
の各 API は、戻る処理でonBackPressedDispatcher.onBackPressed()
を呼び出すと警告を表示するようになりました。これは、予測型「戻る」アニメーションが常に中断されるためです。詳しくは、ベスト プラクティス ガイドをご覧ください。(1e4222、2c950d、b/287505200)。
バグの修正
- 予測型「戻る」ジェスチャーの実行中に開始された「戻る」イベントがシステムから送信されると、現在実行中の予測型「戻る」ジェスチャーはキャンセルされ、新しい「戻る」イベントが引き継いで新しい予測型「戻る」ジェスチャーが開始されます。(I3482e)。
- バックグラウンド スレッドから初めて
ComponentActivity
からonBackPressedDispatcher
にアクセスしたときのクラッシュを修正しました。これで、どのスレッドでもonBackPressedDispatcher
に安全にアクセスできます。(I79955)。
バージョン 1.9.0-alpha02
2024 年 1 月 24 日
androidx.activity:activity:1.9.0-alpha02
、androidx.activity:activity-compose:1.9.0-alpha02
、androidx.activity:activity-ktx:1.9.0-alpha02
がリリースされました。バージョン 1.9.0-alpha02 に含まれる commit については、こちらをご覧ください。
Kotlin 変換
ActivityResultRegistry
が Kotlin で書き換えられました。これにより、register
に渡されるコントラクトのジェネリクスの null 可能性が、返されるActivityResultLauncher
に正しく渡されるようになります。(I121f0)。ActivityResult
が Kotlin で書き換えられました。resultCode
フィールドとdata
フィールドへの分解をサポートするActivityResult
Kotlin 拡張機能がactivity-ktx
からactivity
に移動しました。(I0565a)。ComponentActivity
とtrackPipAnimationHintView
用のby viewModels()
の Kotlin 拡張機能がactivity-ktx
からactivity
に移動しました。activity-ktx
アーティファクトが完全に空になりました。(I0a444)。
バグの修正
enableEdgeToEdge
API が、あらゆるディスプレイ カットアウトの周囲に描画されるようになりました。(a3644b、b/311173461)。- Activity
1.8.2
から: 写真選択ツール アクティビティ コントラクトのACTION_SYSTEM_FALLBACK_PICK_IMAGES
に渡されるエクストラ項目を修正し、キー"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
でエクストラを使用するのではなくEXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
キーを正しく渡すようにしました。幅広い互換性を確保するために、システムの代替写真選択ツールを実装して両方のエクストラをサポートする OEM の方は、この方法を強くおすすめします。(I96a00)。
バージョン 1.9.0-alpha01
2023 年 11 月 29 日
androidx.activity:activity:1.9.0-alpha01
、androidx.activity:activity-compose:1.9.0-alpha01
、androidx.activity:activity-ktx:1.9.0-alpha01
がリリースされました。バージョン 1.9.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
ComponentActivity
でOnUserLeaveHintProvider
が実装され、コンポーネントがonUserLeaveHint
イベントのコールバックを行えるようになりました。(I54892)。
API の変更
ComponentActivity
が Kotlin で書き換えられました。(I14f31)。ActivityResultCaller
が Kotlin で書き換えられました。(Ib02e4)。ActivityResultLauncher
が Kotlin で書き換えられました。この変換の一環として、getContract
メソッドが Kotlin 抽象プロパティになりました。これはバイナリ互換の変更ですが、ActivityResultLauncher
の実装が Kotlin で記述されている場合、ソースが破損します。(Id4615)。PickVisualMediaRequest
の最小 API レベルは、PickVisualMedia
Activity Result コントラクトと同じ 19 になりました。(Id6e21)。
依存関係の更新
- アクティビティが Core
1.13.0-alpha01
に依存するようになりました。(I14f31)。
バージョン 1.8
バージョン 1.8.2
2023 年 12 月 13 日
androidx.activity:activity:1.8.2
、androidx.activity:activity-compose:1.8.2
、androidx.activity:activity-ktx:1.8.2
がリリースされました。バージョン 1.8.2 に含まれる commit については、こちらをご覧ください。
バグの修正
- 写真選択ツール アクティビティのコントラクトの
ACTION_SYSTEM_FALLBACK_PICK_IMAGES
に渡されるエクストラを修正し、キー"com.google.android.gms.provider.extra.PICK_IMAGES_MAX"
でエクストラを使用するのではなく、EXTRA_SYSTEM_FALLBACK_PICK_IMAGES_MAX
キーを正しく渡すようにしました。幅広い互換性を確保するために、システムの代替写真選択ツールを実装して両方のエクストラをサポートする OEM の方は、この方法を強くおすすめします。(I96a00)。
バージョン 1.8.1
2023 年 11 月 15 日
androidx.activity:activity:1.8.1
、androidx.activity:activity-compose:1.8.1
、androidx.activity:activity-ktx:1.8.1
がリリースされました。バージョン 1.8.1 に含まれる commit については、こちらをご覧ください。
バグの修正
- 「戻る」ジェスチャーの処理中に新しい
OnBackPressedCallback
が追加された後も、OnBackPressedDispatcher
が正しいOnBackPressedCallback
にディスパッチし続けるようになりました。(Id0ff6)。
バージョン 1.8.0
2023 年 10 月 4 日
androidx.activity:activity:1.8.0
、androidx.activity:activity-compose:1.8.0
、androidx.activity:activity-ktx:1.8.0
がリリースされました。バージョン 1.8.0 に含まれる commit については、こちらをご覧ください。
1.7.0 以降の重要な変更
- 予測型「戻る」 -
OnBackPressedCallback
には、「戻る」ジェスチャーが commit されたときの以前のhandleOnBackPressed()
コールバックに加えて、「戻る」ジェスチャーの開始、ジェスチャーの進行状況、「戻る」ジェスチャーのキャンセルを処理する新しい予測型「戻る」コールバックが用意されています。これには、Activity Compose で予測型「戻る」ジェスチャー イベントを処理するPredictiveBackHandler
コンポーザブルも含まれています。これにより、提供する一時停止ラムバで収集する必要がある BackEventCompat オブジェクトの Flow が提供されます。
PredictiveBackHandler { progress: Flow<BackEventCompat> ->
// code for gesture back started
try {
progress.collect { backEvent ->
// code for progress
}
// code for completion
} catch (e: CancellationException) {
// code for cancellation
}
}
ComponentActivity.onBackPressed()
が非推奨になり、再処理用の API に置き換えられました。デベロッパーは、このメソッドをオーバーライドするのではなく、OnBackPressedDispatcher
を使用する必要があります。
- EdgeToEdge - 下位互換性のある方法でエッジ ツー エッジのディスプレイを簡単に設定するために、
ComponentActivity.enableEdgeToEdge()
が追加されました。
バージョン 1.8.0-rc01
2023 年 9 月 20 日
androidx.activity:activity:1.8.0-rc01
、androidx.activity:activity-compose:1.8.0-rc01
、androidx.activity:activity-ktx:1.8.0-rc01
がリリースされました。バージョン 1.8.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.8.0-beta01
2023 年 9 月 6 日
androidx.activity:activity:1.8.0-beta01
、androidx.activity:activity-compose:1.8.0-beta01
、androidx.activity:activity-ktx:1.8.0-beta01
がリリースされました。バージョン 1.8.0-beta01 に含まれる commit については、こちらをご覧ください。
ドキュメントの改善
BackEventCompat
のドキュメントを改善しました。(aosp/2722254)。
バージョン 1.8.0-alpha07
2023 年 8 月 23 日
androidx.activity:activity:1.8.0-alpha07
、androidx.activity:activity-compose:1.8.0-alpha07
、androidx.activity:activity-ktx:1.8.0-alpha07
がリリースされました。バージョン 1.8.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
Activity Compose に、予測型「戻る」ジェスチャー イベントを処理するための新しい
PredictiveBackHandler
コンポーザブルが追加されました。これにより、指定する一時停止ラムバで収集する必要があるBackEventCompat
オブジェクトのFlow
が提供されます。PredictiveBackHandler { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress } // code for completion } catch (e: CancellationException) { // code for cancellation } }
また、lint ルールを介してコンパイル時に警告が表示され、
Flow
がcollect()
を呼び出すようにします。(Id2773、b/294884345)。ComponentActivity
のonBackPressedDispatcher
が遅延して初期化され、必要なときにのみ作成されるようになりました。(I0bf8e)。
バグの修正
ComponentActivity
が Android 13 でonBackPressed()
コールバックを取得し、Activity がすでにDESTROYED
になっている場合に NPE を表示しないようになりました。(Idb055、b/291869278)。- 試験運用版の
isAtLeastU()
API の使用を削除しました(Ie9117、b/289269026)。
バージョン 1.8.0-alpha06
2023 年 6 月 21 日
androidx.activity:activity:1.8.0-alpha06
、androidx.activity:activity-compose:1.8.0-alpha06
、androidx.activity:activity-ktx:1.8.0-alpha06
がリリースされました。バージョン 1.8.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
OnBackPressedDispatcher
が、予測型「戻る」ジェスチャー中に削除されるコールバックを正しくキャンセルするようになりました。(I3f90f)。
API の変更
SystemBarStyle.auto
をenableEdgeToEdge
API に渡す際に、detectDarkMode
ラムダ パラメータをオーバーライドして、夜間モードを検出するカスタム ロジックを提供できるようになりました。(aosp/2546393、b/278263793)。
バージョン 1.8.0-alpha05
2023 年 6 月 7 日
androidx.activity:activity:1.8.0-alpha05
、androidx.activity:activity-compose:1.8.0-alpha05
、androidx.activity:activity-ktx:1.8.0-alpha05
がリリースされました。このバージョンは内部ブランチで開発されています。
API の変更
- Activity で、フレームワーク
BackEvent
クラスから分離されたBackEvent
の下位互換性のあるバージョンとして機能するBackEventCompat
クラスが提供されるようになりました。 - 互換性を破る変更:
OnBackPressedCallback
のhandleOnBackStarted
メソッドとhandleOnBackProgressed
メソッドは、フレームワークのandroid.window.BackEvent
クラスではなくandroidx.activity.BackEventCompat
インスタンスを受け取るようになりました。OnBackPressedDispatcher
の同等の@VisibleForTesting
API も更新されています。 OnBackPressedDispatcher
のコンストラクタがオプションのConsumer<Boolean>
インスタンスを受け取るようになりました。これにより、有効なコールバックの数がゼロからゼロ以外(またはその逆)に変わったときに、ディスパッチャのオーナーがコールバックを受け取れるようになりました。
バグの修正
- Activity
1.7.2
から:report
が呼び出される前に画面から移動するとReportDrawn
がクラッシュする問題を修正しました。(Ic46f1、b/260506820)。
バージョン 1.8.0-alpha04
2023 年 5 月 10 日
androidx.activity:activity:1.8.0-alpha04
、androidx.activity:activity-compose:1.8.0-alpha04
、androidx.activity:activity-ktx:1.8.0-alpha04
がリリースされました。これは内部ブランチからリリースされました。
バグの修正
- Activity 1.7.1 以降: -
ActivityScenario
でComponentActivity
を使用している場合に、ReportFullyDrawExecuter
がリークしなくなりました。(Id2ff2、b/277434271)。
バージョン 1.8.0-alpha03
2023 年 4 月 12 日
androidx.activity:activity:1.8.0-alpha03
、androidx.activity:activity-compose:1.8.0-alpha03
、androidx.activity:activity-ktx:1.8.0-alpha03
がリリースされました。これは内部ブランチからリリースされました。
新機能
- 下位互換性のある方法でエッジ ツー エッジのディスプレイを簡単にセットアップできるように
ComponentActivity.setUpEdgeToEdge()
を追加しました。
API の変更
ComponentActivity.onBackPressed()
が非推奨になり、再処理用の API に置き換えられました。デベロッパーは、このメソッドをオーバーライドするのではなく、OnBackPressedDispatcher
を使用する必要があります。(Ibce2f、b/271596918)。ComponentDialog
とComponentActivity
に、コンテンツ ビューを設定する前にすべてのビューツリー所有者を初期化するために使用される公開 APIinitViewTreeOwners()
が追加されました。(Ibdce0、b/261314581)。
バグの修正
- Fragment が誤って MenuHost を無効にし、アクティビティ内の他のメニューが予期しない動作をする問題を修正しました。(I9404e、b/244336571)。
その他の変更点
ActivityResultRegister
は、Java ではなく KotlinRandom
を使用するようになりました。(I4d98f、b/272096025)。
バージョン 1.8.0-alpha02
2023 年 3 月 8 日
androidx.activity:activity:1.8.0-alpha02
、androidx.activity:activity-compose:1.8.0-alpha02
、androidx.activity:activity-ktx:1.8.0-alpha02
がリリースされました。内部ブランチで開発。
依存関係の更新
- アクティビティ
1.7.0-rc01
から: アクティビティがLifecycle 2.6.0
に依存するようになりました。
バージョン 1.8.0-alpha01
2023 年 2 月 8 日
androidx.activity:activity:1.8.0-alpha01
、androidx.activity:activity-compose:1.8.0-alpha01
、androidx.activity:activity-ktx:1.8.0-alpha01
がリリースされました。これは内部ブランチから構築されました。
新機能
OnBackPressedCallback
クラスに、戻るジェスチャーが commit されたときの以前のhandleOnBackPressed()
コールバックに加えて、新しい予測型「戻る」進行状況コールバックが導入されました。
バージョン 1.7
バージョン 1.7.2
2023 年 5 月 24 日
androidx.activity:activity:1.7.2
、androidx.activity:activity-compose:1.7.2
、androidx.activity:activity-ktx:1.7.2
がリリースされました。バージョン 1.7.2 に含まれる commit については、こちらをご覧ください。
バグの修正
report
が呼び出される前に画面から移動するとReportDrawn
がクラッシュする問題を修正しました。(Ic46f1、b/260506820)。
バージョン 1.7.1
2023 年 4 月 19 日
androidx.activity:activity:1.7.1
、androidx.activity:activity-compose:1.7.1
、androidx.activity:activity-ktx:1.7.1
がリリースされました。バージョン 1.7.1 に含まれる commit については、こちらをご覧ください。
バグの修正
ActivityScenario
でComponentActivity
を使用しても、ReportFullyDrawExecuter
がリークしなくなりました。(Id2ff2、b/277434271)。
バージョン 1.7.0
2023 年 3 月 22 日
androidx.activity:activity:1.7.0
、androidx.activity:activity-compose:1.7.0
、androidx.activity:activity-ktx:1.7.0
がリリースされました。バージョン 1.7.0 に含まれる commit については、こちらをご覧ください。
1.6.0 以降の重要な変更
PickVisualMedia
とPickMultipleVisualMedia
の写真選択ツールのアクティビティ コントラクトが更新され、MediaStore.ACTION_PICK_IMAGES
が利用できない場合の追加のフォールバックが追加されました。これにより、OEM や Google Play 開発者サービスなどのシステムアプリは、フォールバック アクションを実装することで、幅広い Android デバイスと API レベルで一貫した写真選択ツールのエクスペリエンスを提供できます。写真選択ツールは、Intent.ACTION_OPEN_DOCUMENT
の使用にフォールバックする前に利用できる場合、このフォールバックを使用します。ただし、引き続きすべての API 19 以降のデバイスがサポートされます。ComponentDialog
がSavedStateRegistryOwner
を実装し、独自のSavedStateRegistry
にアクセスして、ViewTree
のSavedStateRegistryOwner
を設定できるようになりました。Jetpack Compose がComponentDialog
内で使用できるようになりました。これは、ViewTree
API 要件を介してウィンドウにアタッチされたLifecycleOwner
とSavedStateRegistryOwner
の両方を満たしているためです。IntentSenderRequest.Builder.setFlags()
を使用すると、Intent
から複数のフラグを設定できるようになりました(1 つのフラグだけではなく)。
Kotlin 変換
いくつかの Activity クラスが Kotlin に変換されました。変換されたすべてのクラスは、引き続き以前のバージョンとのバイナリ互換性を保持します。次のクラスには、Kotlin で記述されたクラスとソース互換性がない変更があります: ActivityResultRegistryOwner
、OnBackPressedDispatcherOwner
。
次の表に、新しいバージョンの Activity ソース コンバージョンを示します。
アクティビティ 1.5 | アクティビティ 1.6 |
---|---|
override fun getActivityResultRegistry() = activityResultRegistry |
override val activityResultRegistry = activityResultRegistry |
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher |
override val onBackPressedDispatcher = onBackPressedDispatcher |
これらのクラスも Kotlin に変換されましたが、ソースの互換性は保たれています: ContextAware
、ContextAwareHelper
、OnContextAvailableListener
、IntentSenderRequest
、OnBackPressedDispatcher
FullyDrawnReporter API
ComponentActivity
が FullyDrawnReporter
インスタンスを提供するようになりました。このインスタンスを使用すると、インタラクションの準備が整ったときに複数のコンポーネントでレポートできます。ComponentActivity
は、すべてのコンポーネントが完了するまで待機してから、reportFullyDrawn()
を呼び出してくれます。この API はタイミング要件を自動的に処理するので、onDraw
呼び出しの一部として呼び出す必要はありません。
この API では、以下を有効にすることをおすすめします。
- 起動完了時の Android ランタイムへのシグナル送信。マルチフレームの起動シーケンス中に実行されるすべてのコードが含まれ、バックグラウンド コンパイルで優先されるようにします。
- Macrobenchmark と Play Vitals へのシグナル送信(アプリが起動指標で完全に描画されたと見なされ、パフォーマンスをトラッキングできるようにする必要がある場合)。
個々のコンポーザブルから FullyDrawnReporter
を簡単に使用できるように、3 つの Activity Compose API を追加しました。
ReportDrawn
は、コンポーザブルで直ちにインタラクションが発生する準備が整っていることを示します。ReportDrawnWhen
: コンポーザブルでインタラクションの準備が整ったタイミングを示す述語(list.count > 0
)を受け取ります。ReportDrawnAfter
: 完了時にインタラクションの準備が整ったことを示す停止中のメソッドを受け取ります。
依存関係の更新
- Activity が Lifecycle
2.6.1
に依存するようになりました。(8fc31d)。 - アクティビティが ProfileInstaller
1.3.0
に依存するようになりました。(83d3b1)。
バージョン 1.7.0-rc01
2023 年 3 月 8 日
androidx.activity:activity:1.7.0-rc01
、androidx.activity:activity-compose:1.7.0-rc01
、androidx.activity:activity-ktx:1.7.0-rc01
がリリースされました。バージョン 1.7.0-rc01 に含まれる commit については、こちらをご覧ください。
依存関係の更新
- アクティビティが
Lifecycle 2.6.0
に依存するようになりました。
バージョン 1.7.0-beta02
2023 年 2 月 22 日
androidx.activity:activity:1.7.0-beta02
、androidx.activity:activity-compose:1.7.0-beta02
、androidx.activity:activity-ktx:1.7.0-beta02
がリリースされました。バージョン 1.7.0-beta02 に含まれる commit については、こちらをご覧ください。
API の変更
MediaStore.ACTION_PICK_IMAGES
が利用できない場合のフォールバックとしてPickVisualMedia
コントラクトとPickMultipleVisualMedia
コントラクトによって使用されるアクションとエクストラは、一貫性のある写真選択ツール エクスペリエンスを提供する OEM とシステムアプリに API の安定性を提供するパブリック定数になりました。このフォールバックの実装は、引き続きシステムアプリのみに限定されます。(Icd320)。
バージョン 1.7.0-beta01
2023 年 2 月 8 日
androidx.activity:activity:1.7.0-beta01
、androidx.activity:activity-compose:1.7.0-beta01
、androidx.activity:activity-ktx:1.7.0-beta01
がリリースされました。バージョン 1.7.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
IntentSenderRequest.Builder.setFlags()
を使用して、1 つのフラグだけでなく、Intent
で複数のフラグを設定できるようになりました。(Iac04c)
バグの修正
- フレームワーク写真選択ツールが使用できない場合の
PickVisualMedia
のフォールバックにより、デバイスのシステム イメージにインストールされているアプリへの処理が正しく制限されるようになりました。(If8ae6)
Kotlin 変換
ActivityResultRegistryOwner
が Kotlin で記述されるようになりました。これは Kotlin で記述されたクラスのソース互換性のない変更です。以前のgetActivityResultRegistry()
関数を実装する代わりに、activityResultRegistry
プロパティをオーバーライドする必要があります。(I0b00e)OnBackPressedDispatcherOwner
が Kotlin で記述されるようになりました。これは Kotlin で記述されたクラスのソース互換性のない変更です。以前のgetOnBackPressedDispatcher
関数を実装する代わりに、onBackPressedDispatcher
プロパティをオーバーライドする必要があります。(Ia277d)ContextAware
、ContextAwareHelper
、OnContextAvailableListener
、IntentSenderRequest
、OnBackPressedDispatcher
が Kotlin で記述されるようになりました。(I1a73e、Iada92、aosp/2410754、I18ac7、b/257291701)
バージョン 1.7.0-alpha04
2023 年 1 月 25 日
androidx.activity:activity:1.7.0-alpha04
、androidx.activity:activity-compose:1.7.0-alpha04
、androidx.activity:activity-ktx:1.7.0-alpha04
がリリースされました。バージョン 1.7.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
PickVisualMedia
とPickMultipleVisualMedia
の Activity Result コントラクトは、Android システムから提供される写真選択ツールが利用できない場合に、Google Play サービスから提供される写真選択ツールを、可能であれば利用するようになりました(Android システムから提供されるのは、MediaStore.ACTION_PICK_IMAGES
などです)。Android システムから提供される写真選択ツールしか検出しないisPhotoPickerAvailable()
API は非推奨となりました。新しいisPhotoPickerAvailable(Context)
API を使用することをおすすめします。この API は、写真選択ツールのいずれかが利用可能であればそれを返します。(I55be6)
バージョン 1.7.0-alpha03
2023 年 1 月 11 日
androidx.activity:activity:1.7.0-alpha03
、androidx.activity:activity-compose:1.7.0-alpha03
、androidx.activity:activity-ktx:1.7.0-alpha03
がリリースされました。バージョン 1.7.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
ComponentDialog
がSavedStateRegistryOwner
を実装して独自のSavedStateRegistry
にアクセスし、ViewTree に対しSavedStateRegistryOwner
を設定するようになりました。ViewTree API を使って Window にLifecycleOwner
とSavedStateRegistryOwner
の両方をアタッチするという要件を満たしているため、ComponentDialog
内で Jetpack Compose を使用することが可能になりました。(Idca17、I73468、b/261162296)
API の変更
reportFullyDrawn
を呼び出す準備ができるとすぐにアクティビティをマークするReportDrawn
コンポーザブルを追加しました。(Ic5b14、b/259687964)
Kotlin 変換
- ソースとバイナリの互換性を保持するにあたり、
ActvitiyResultCallback
とOnBackPressedCallback
のクラスが両方とも Kotlin に変換されました。(Ifc5e5、Ide1b0、b/257291701)
バージョン 1.7.0-alpha02
2022 年 10 月 24 日
androidx.activity:activity:1.7.0-alpha02
、androidx.activity:activity-compose:1.7.0-alpha02
、androidx.activity:activity-ktx:1.7.0-alpha02
がリリースされました。バージョン 1.7.0-alpha02 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity
1.6.1
以降:maxItems
のデフォルト値を使用する場合に、Android R デバイスでPickMultipleVisualMedia
Activity Result コントラクトが起動しない問題を修正しました。(Ie2776、b/249182130)
バージョン 1.7.0-alpha01
2022 年 10 月 5 日
androidx.activity:activity:1.7.0-alpha01
、androidx.activity:activity-compose:1.7.0-alpha01
、androidx.activity:activity-ktx:1.7.0-alpha01
がリリースされました。バージョン 1.7.0-alpha01 に含まれる commit については、こちらをご覧ください。
FullyDrawnReporter API
ComponentActivity
が FullyDrawnReporter
インスタンスを提供するようになりました。このインスタンスを使用すると、インタラクションの準備が整ったときに複数のコンポーネントでレポートできます。ComponentActivity
は、すべてのコンポーネントが完了するまで待機してから、reportFullyDrawn()
を呼び出してくれます。この API はタイミング要件を自動的に処理するので、onDraw
呼び出しの一部として呼び出す必要はありません。
この API では、以下を有効にすることをおすすめします。
- 起動完了時の Android ランタイムへのシグナル送信。マルチフレームの起動シーケンス中に実行されるすべてのコードが含まれ、バックグラウンド コンパイルで優先されるようにします。
- Macrobenchmark と Play Vitals へのシグナル送信(アプリが起動指標で完全に描画されたと見なされ、パフォーマンスをトラッキングできるようにする必要がある場合)。
個々のコンポーザブルの FullyDrawnReporter
を簡単に使用できるように、次の 2 つの Activity Compose API を追加しました。
ReportDrawnWhen
: コンポーザブルでインタラクションの準備が整ったタイミングを示す述語(list.count > 0
)を受け取ります。ReportDrawnAfter
: 完了時にインタラクションの準備が整ったことを示す停止中のメソッドを受け取ります。
バージョン 1.6.1
バージョン 1.6.1
2022 年 10 月 24 日
androidx.activity:activity:1.6.1
、androidx.activity:activity-compose:1.6.1
、androidx.activity:activity-ktx:1.6.1
がリリースされました。バージョン 1.6.1 に含まれる commit については、こちらをご覧ください。
バグの修正
maxItems
のデフォルト値を使用する場合に、Android R デバイスでPickMultipleVisualMedia
Activity Result コントラクトが起動しない問題を修正しました。(Ie2776、b/249182130)
バージョン 1.6.0
バージョン 1.6.0
2022 年 9 月 21 日
androidx.activity:activity:1.6.0
、androidx.activity:activity-compose:1.6.0
、androidx.activity:activity-ktx:1.6.0
がリリースされました。バージョン 1.6.0 に含まれる commit については、こちらをご覧ください。
1.5.0 以降の重要な変更
ActivityResultContracts.PickVisualMedia
とActivityResultContracts.PickMultipleVisualMedia
が追加されました。これにより、写真選択ツールを利用できる場合はMediaStore.ACTION_PICK_IMAGES
を使用し、利用できない場合はIntent.ACTION_OPEN_DOCUMENT
を使用するという、下位互換性のコントラクトが提供されます。- Android 13 の
OnBackInvokedCallback
を、ComponentActivity
とComponentDialog
によって提供されるOnBackPressedDispatchers
に統合しました。これにより、OnBackPressedDispatcher
上に構築されたすべての API が、予測型「戻る」ジェスチャーを有効にするときに機能するようになります。
バージョン 1.6.0-rc02
2022 年 9 月 7 日
androidx.activity:activity:1.6.0-rc02
、androidx.activity:activity-compose:1.6.0-rc02
、androidx.activity:activity-ktx:1.6.0-rc02
がリリースされました。バージョン 1.6.0-rc02 に含まれる commit については、こちらをご覧ください。
バグの修正
OnBackPressedDispatcher
がOnBackInvokedCallback
をPRIORITY_OVERLAY
ではなくPRIORITY_DEFAULT
に登録するようになりました。(I3901f)ComponentActivity
を拡張するクラスで、常に両方のonMultiWindowModeChanged()
コールバックがディスパッチされるようになりました。(Ic4d85)launch
の呼び出しでException
がスローされ、コールバックがLifecycleOwner
なしで登録された場合、ActivityResultRegistry
から結果をActivityResultCallback
に返さないようにしました。(Ia7ff7、b/238350794)ComponentActivity
はメニュー呼び出しを適切にディスパッチするようになり、アクティビティ内でスーパー関数を呼び出す必要はなくなりました。(Ie33c5、b/238057118)
依存関係の更新
Activity
ライブラリは Lifecycle2.5.1
に依存するようになりました。(If6697)
バージョン 1.6.0-rc01
2022 年 8 月 24 日
androidx.activity:activity:1.6.0-rc01
、androidx.activity:activity-compose:1.6.0-rc01
、androidx.activity:activity-ktx:1.6.0-rc01
がリリースされました。バージョン 1.6.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
- バージョン 33 より前の SDK を使用している場合に
OnBackPressedDispatcher
を初期化してもClassVerificationError
が発生しなくなりました。(Ic32e1) ComponentActivity
のonPictureInPictureModeChanged()
コールバックをオーバーライドするクラスで、常にコールバックがディスパッチされるようになりました。(Ib7fdb)
バージョン 1.6.0-beta01
2022 年 8 月 10 日
androidx.activity:activity:1.6.0-beta01
、androidx.activity:activity-compose:1.6.0-beta01
、androidx.activity:activity-ktx:1.6.0-beta01
がリリースされました。バージョン 1.6.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
null
を渡すと常にクラッシュが発生するため、ComponentActivity
の非推奨のstartActivityForResult
メソッドとstartIntentSenderForResult
メソッドに@NonNull
を付けました。(Id2a25、b/231476082)
バグの修正
- Activity
1.5.1
以降:launch
の呼び出しでException
がスローされ、コールバックがLifecycleOwner
なしで登録された場合、ActivityResultRegistry
から結果をActivityResultCallback
に返さないようにしました。(Ia7ff7、b/238350794) - Activity
1.5.1
以降:ComponentActivity
はメニュー呼び出しをonPrepareOptionMenu()
、onCreateOptionsMenu()
、onOptionsItemSelected()
のオーバーライドに適切にディスパッチするようになり、スーパー関数を呼び出す必要はなくなりました。(Ie33c5、b/238057118)
依存関係の更新
- Activity
1.5.1
以降:Activity
ライブラリはLifecycle
バージョン2.5.1
に依存するようになりました。(If6697)
バージョン 1.6.0-alpha05
2022 年 6 月 15 日
androidx.activity:activity:1.6.0-alpha05
、androidx.activity:activity-compose:1.6.0-alpha05
、androidx.activity:activity-ktx:1.6.0-alpha05
がリリースされました。バージョン 1.6.0-alpha05 は非公開のプレリリース ブランチで開発されており、公開版の commit はありません。
API の変更
- Tiramisu Beta 3 SDK に合わせて、
minCompileSdk
が 33 になりました
バグの修正
- Android 10 以前を搭載したデバイスで
ACTION_OPEN_DOCUMENT
と連携するようにPickVisualMedia
ActivityResultContract
の SDK 拡張機能チェックを実行する際に、以前のデバイスで起きていたクラッシュを修正しました。
バージョン 1.6.0-alpha04
2022 年 5 月 18 日
androidx.activity:activity:1.6.0-alpha04
と androidx.activity:activity-ktx:1.6.0-alpha04
がリリースされました。
バグの修正
- Builder またはトップレベルの Kotlin 関数を使用してリクエストを作成しようとすると、
PickVisualMediaRequest
でエラーが発生してスタック オーバーフローになる問題を修正しました。 - Android 13 デベロッパー ベータ版 2 の
OnBackInvokedCallback
を、ComponentDialog
によって提供されるOnBackPressedDispatcher
に統合しました。これにより、OnBackPressedDispatcher
上に構築されたすべての API が、予測型「戻る」ジェスチャーを有効にするときに機能するようになります。
バージョン 1.6.0-alpha03
2022 年 4 月 27 日
androidx.activity:activity:1.6.0-alpha03
、androidx.activity:activity-compose:1.6.0-alpha03
、androidx.activity:activity-ktx:1.6.0-alpha03
がリリースされました。
- 注: このバージョンは Android 13 デベロッパー ベータ版 1 SDK でのみコンパイルされます。
新機能
ActivityResultContracts.PickVisualMedia
とActivityResultContracts.PickMultipleVisualMedia
が追加されました。これにより、写真選択ツールを利用できる場合はMediaStore.ACTION_PICK_IMAGES
を使用し、利用できない場合はIntent.ACTION_OPEN_DOCUMENT
を使用するという、下位互換性のコントラクトが提供されます。- Android 13 デベロッパー ベータ版 1 の
OnBackInvokedCallback
を、ComponentActivity
によって提供されるOnBackPressedDispatcher
に統合しました。これにより、OnBackPressedDispatcher
上に構築されたすべての API が、予測型「戻る」ジェスチャーを有効にするときに機能するようになります。
バージョン 1.6.0-alpha01
2022 年 3 月 23 日
androidx.activity:activity:1.6.0-alpha01
、androidx.activity:activity-compose:1.6.0-alpha01
、androidx.activity:activity-ktx:1.6.0-alpha01
がリリースされました。
- 注: このバージョンは Android 13 デベロッパー プレビュー 2 SDK でのみコンパイルされます。
新機能
- Android 13 デベロッパー プレビュー 2 での変更を
ComponentActivity
に統合しました。
バージョン 1.5.1
バージョン 1.5.1
2022 年 7 月 27 日
androidx.activity:activity:1.5.1
、androidx.activity:activity-compose:1.5.1
、androidx.activity:activity-ktx:1.5.1
がリリースされました。バージョン 1.5.1 に含まれる commit については、こちらをご覧ください。
バグの修正
launch()
の呼び出しでException
がスローされ、コールバックがLifecycleOwner
なしで登録された場合、ActivityResultRegistry
から結果をActivityResultCallback
に返さないようにしました。(Ia7ff7、b/238350794)ComponentActivity
はメニュー呼び出しをonPrepareOptionMenu()
、onCreateOptionsMenu()
、onOptionsItemSelected()
のオーバーライドに適切にディスパッチするようになり、スーパー関数を呼び出す必要はなくなりました。(Ie33c5、b/238057118)
依存関係の更新
Activity
ライブラリは Lifecycle2.5.1
に依存するようになりました。(If6697)
バージョン 1.5.0
バージョン 1.5.0
2022 年 6 月 29 日
androidx.activity:activity:1.5.0
、androidx.activity:activity-compose:1.5.0
、androidx.activity:activity-ktx:1.5.0
がリリースされました。バージョン 1.5.0 に含まれる commit については、こちらをご覧ください。
1.4.0 以降の重要な変更
- ComponentDialog -
ComponentDialog
はDialog
のサブクラスです。このサブクラスには、システムの [戻る] ボタンが押されてダイアログが表示されたときに呼び出されるOnBackPressedDispatcher
が含まれています。重要な点として、このサブクラスはViewTreeOnBackPressedDispatcherOwner
も設定し、これによりビューが一般的な方法で適切なディスパッチャ(それがComponentActivity
とComponentDialog
のどちらに存在する場合でも)を取得できます。 - コールバック インターフェース -
ComponentActivity
に、Activity
コールバックの代わりに使用できるモジュラー コールバック インターフェースのセットが実装されました。これらのインターフェースには、OnNewIntentProvider
、OnConfigurationChangedProvider
、OnTrimMemoryProvider
、OnPictureInPictureModeChangedProvider
、OnMultiWindowModeChangedProvider
が含まれています。 - CreationExtras の統合 -
ComponentActivity
が Lifecycle2.5.0
のCreationExtras
を介して、ステートレスのViewModelProvider.Factory
を提供できるようになりました。
その他の変更
ActivityResultContracts.CreateDocument
用のパラメータがないコンストラクタが非推奨になり、具体的な MIME タイプ(例: 「image/png」)を受け取る新しいコンストラクタに置き換えられました。この MIME タイプはIntent.ACTION_CREATE_DOCUMENT
で必要とされます。
バージョン 1.5.0-rc01
2022 年 5 月 11 日
androidx.activity:activity:1.5.0-rc01
、androidx.activity:activity-compose:1.5.0-rc01
、androidx.activity:activity-ktx:1.5.0-rc01
がリリースされました。1.5.0-beta01 からの変更はありません。バージョン 1.5.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.5.0-beta01
2022 年 4 月 20 日
androidx.activity:activity:1.5.0-beta01
、androidx.activity:activity-compose:1.5.0-beta01
、androidx.activity:activity-ktx:1.5.0-beta01
がリリースされました。バージョン 1.5.0-beta01 に含まれる commit については、こちらをご覧ください。
依存関係の更新
- Activity が Lifecycle
2.4.0-beta01
に依存するようになりました。
バージョン 1.5.0-alpha05
2022 年 4 月 6 日
androidx.activity:activity:1.5.0-alpha05
、androidx.activity:activity-compose:1.5.0-alpha05
、androidx.activity:activity-ktx:1.5.0-alpha05
がリリースされました。バージョン 1.5.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
ComponentActivity
のonPanelClosed()
が superonPanelClosed()
も呼び出すようになりました。これにより、onContextMenuClosed
メソッドが呼び出されない問題を修正しました。(Ib6f77)
バージョン 1.5.0-alpha04
2022 年 3 月 23 日
androidx.activity:activity:1.5.0-alpha04
、androidx.activity:activity-compose:1.5.0-alpha04
、androidx.activity:activity-ktx:1.5.0-alpha04
がリリースされました。バージョン 1.5.0-alpha04 に含まれる commit については、こちらをご覧ください。
バグの修正
SavedStateViewFactory
が、SavedStateRegistryOwner
で初期化された場合でもCreationExtras
を使用できるようになりました。エクストラが指定されている場合、初期化された引数は無視されます。(I6c43b、b/224844583)
バージョン 1.5.0-alpha03
2022 年 2 月 23 日
androidx.activity:activity:1.5.0-alpha03
、androidx.activity:activity-compose:1.5.0-alpha03
、androidx.activity:activity-ktx:1.5.0-alpha03
がリリースされました。バージョン 1.5.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
CreationExtras
をアクティビティのby viewModels()
関数に渡せるようになりました。(I6a3e6、b/217600303)
バージョン 1.5.0-alpha02
2022 年 2 月 9 日
androidx.activity:activity:1.5.0-alpha02
、androidx.activity:activity-compose:1.5.0-alpha02
、androidx.activity:activity-ktx:1.5.0-alpha02
がリリースされました。バージョン 1.5.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
ComponentActivity
がOnPictureInPictureModeChangedProvider
インターフェースを実装し、すべてのコンポーネントがピクチャー イン ピクチャー モードの変更イベントを受信できるようになりました。(I9f567)ComponentActivity
がOnMultiWindowModeChangedProvider
インターフェースを実装し、すべてのコンポーネントがマルチウィンドウ モードの変更イベントを受信できるようになりました。(I62d91)
バージョン 1.5.0-alpha01
2022 年 1 月 26 日
androidx.activity:activity:1.5.0-alpha01
、androidx.activity:activity-compose:1.5.0-alpha01
、androidx.activity:activity-ktx:1.5.0-alpha01
がリリースされました。バージョン 1.5.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
ComponentActivity
が、Lifecycle2.5.0-alpha01
の一部として導入された ViewModel CreationExtras と統合されました。(Ie7e00、b/207012584)Dialog
のサブクラスであるComponentDialog
を追加しました。このサブクラスには、ダイアログの表示中にシステムの [戻る] ボタンが押されたときに呼び出されるOnBackPressedDispatcher
が含まれています。重要な点として、このサブクラスはViewTreeOnBackPressedDispatcherOwner
も設定し、これによりビューが一般的な方法で適切なディスパッチャ(それがComponentActivity
とComponentDialog
のどちらに存在する場合でも)を取得することができます。(I8a1bc)ComponentActivity
が新しいOnNewIntentProvider
インターフェースを実装し、すべてのコンポーネントが該当イベントを受信できるようになりました。(If1f8b)ComponentActivity
が新しいOnConfigurationChangedProvider
インターフェースを実装し、すべてのコンポーネントが該当イベントを受信できるようになりました。(If623b)ComponentActivity
が新しいOnTrimMemoryProvider
インターフェースを実装し、すべてのコンポーネントが該当イベントを受信できるようになりました。(Ia9295)
API の変更
ActivityResultContracts.CreateDocument
用のパラメータがないコンストラクタが非推奨になり、具体的な MIME タイプ(例:"image/png"
)を受け取る新しいコンストラクタに置き換えられました。この MIME タイプはIntent.ACTION_CREATE_DOCUMENT
で必要とされます。(I2bec6)- View に関連付けられた
OnBackPressedDispatcherOwner
を、Context
のキャストに依存せずにViewTreeOnBackPressedDispatcherOwner
で取得できるようになりました。(I74685)
バグの修正
registerForActivityResult()
コールバックから、またはComponentActivity
のinit
の一部として追加されたLifecycleObserver
へのコールバックから初めてViewModel
にアクセスしたときのクラッシュを修正しました。(Ife83f)
バージョン 1.4.0
バージョン 1.4.0
2021 年 10 月 27 日
androidx.activity:activity:1.4.0
、androidx.activity:activity-compose:1.4.0
、androidx.activity:activity-ktx:1.4.0
がリリースされました。バージョン 1.4.0 に含まれる commit については、こちらをご覧ください。
1.3.0 以降の重要な変更
- AndroidX
ComponentActivity
にMenuHost
インターフェースが実装されました。これにより、すべてのコンポーネントがMenuProvider
インスタンスをアクティビティに追加して、メニュー項目をActionBar
に追加できるようになります。各MenuProvider
に、必要に応じてLifecycle
を追加できます。これにより、Lifecycle
の状態に応じてそれぞれのメニュー項目の公開設定が自動的に制御され、Lifecycle
が破棄されたときに、MenuProvider
の削除が処理されます。 - Kotlin で
ActivityResultContract
クラスが書き換えられ、Kotlin でカスタム コントラクトを書いているデベロッパーが、入力クラスと出力クラスに適切な null 可能性を定義できるようになりました。 - Kotlin で
ActivityResultContracts
クラスとそのコントラクトが書き換えられ、適切な null 可能性を確保できるようになりました。
バージョン 1.4.0-rc01
2021 年 10 月 13 日
androidx.activity:activity:1.4.0-rc01
、androidx.activity:activity-compose:1.4.0-rc01
、androidx.activity:activity-ktx:1.4.0-rc01
がリリースされました。バージョン 1.4.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
launch
の呼び出しでException
がスローされた場合に、ActivityResultRegistry
から結果がActivityResultCallback
に返されないようになりました(If4f91、b/200845664)
バージョン 1.4.0-beta01
2021 年 9 月 29 日
androidx.activity:activity:1.4.0-beta01
、androidx.activity:activity-compose:1.4.0-beta01
、androidx.activity:activity-ktx:1.4.0-beta01
がリリースされました。バージョン 1.4.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
- Java プログラミング言語のコードを使用する際に
List<? extends Uri>
の出力タイプを使用する原因となっていたActivityResultContracts.OpenMultipleDocuments
とActivityResultContracts.GetMultipleContents
のタイプを修正しました。(If71de) - 現在公開されている
Companion
オブジェクトを介して、ActivityResultContracts.StartActivityForResult
クラス、ActivityResultContracts.StartIntentSenderForResult
クラス、ActivityResultContracts.RequestMultiplePermissions
クラス内のパブリック定数に Kotlin を使用してアクセスできるようになりました。(aosp/1832555)
ドキュメントの更新情報
- Activity Result API で処理されるようになった API のサポート終了メッセージ(
startActivityForResult
、startIntentSenderForResult
、onActivityResult
、requestPermissions
、onRequestPermissionsResult
)が、すべて詳細に表示されるようになりました。(cce80f)
バージョン 1.4.0-alpha02
2021 年 9 月 15 日
androidx.activity:activity:1.4.0-alpha02
、androidx.activity:activity-compose:1.4.0-alpha02
、androidx.activity:activity-ktx:1.4.0-alpha02
がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
activity-compose
アーティファクトにLaunchDuringComposition
lint エラーを追加しました。これによりActivityResultLauncher
のlaunch
メソッドをコンポジションの一部として呼び出せなくなります(コンポジションは副作用なしにする必要があるため)。副作用を処理するための API を使用します。(7c2bbe、b/191347220)
API の変更
- Kotlin で
ActivityResultContract
クラスが書き換えられ、Kotlin でカスタム コントラクトを書いているデベロッパーが、入力クラスと出力クラスに適切な null 可能性を定義できるようになりました。(I8a8f5) - Kotlin で
ActivityResultContracts
クラスとそのコントラクトが書き換えられ、適切な null 可能性を確保できるようになりました。(I69802)
バージョン 1.4.0-alpha01
2021 年 9 月 1 日
androidx.activity:activity:1.4.0-alpha01
、androidx.activity:activity-compose:1.4.0-alpha01
、androidx.activity:activity-ktx:1.4.0-alpha01
がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- AndroidX
ComponentActivity
にMenuHost
インターフェースが実装されました。これにより、すべてのコンポーネントがMenuProvider
インスタンスをアクティビティに追加して、メニュー項目をActionBar
に追加できるようになります。各MenuProvider
に、必要に応じてLifecycle
を追加できます。これにより、Lifecycle
の状態に応じてそれぞれのメニュー項目の公開設定が自動的に制御され、Lifecycle
が破棄されたときに、MenuProvider
の削除が処理されます。(I3b608):
/**
* Using the addMenuProvider() API directly in your Activity
**/
class ExampleActivity : ComponentActivity(R.layout.activity_example) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Add menu items without overriding methods in the Activity
addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
})
}
}
/**
* Using the addMenuProvider() API in a Fragment
**/
class ExampleFragment : Fragment(R.layout.fragment_example) {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
// The usage of an interface lets you inject your own implementation
val menuHost: MenuHost = requireActivity()
// Add menu items without using the Fragment Menu APIs
// Note how we can tie the MenuProvider to the viewLifecycleOwner
// and an optional Lifecycle.State (here, RESUMED) to indicate when
// the menu should be visible
menuHost.addMenuProvider(object : MenuProvider {
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
// Add menu items here
menuInflater.inflate(R.menu.example_menu, menu)
}
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {
// Handle the menu selection
return true
}
}, viewLifecycleOwner, Lifecycle.State.RESUMED)
}
動作の変更
- 登録されていないか、登録解除された
ActivityResultLauncher
でlaunch()
を呼び出そうとすると、ActivityResultRegistry
がIllegalStateException
をスローするようになりました。(Ida75d、b/192567522)
外部からの協力
バージョン 1.3.1
バージョン 1.3.1
2021 年 8 月 4 日
androidx.activity:activity:1.3.1
、androidx.activity:activity-compose:1.3.1
、androidx.activity:activity-ktx:1.3.1
がリリースされました。バージョン 1.3.1 に含まれる commit については、こちらをご覧ください。
依存関係の更新
- Activity が Kotlin
1.5.21
に依存するようになりました。 - Activity Compose が、Compose
1.0.1
に依存するようになりました。
バージョン 1.3.0
バージョン 1.3.0
2021 年 7 月 28 日
androidx.activity:activity:1.3.0
、androidx.activity:activity-compose:1.3.0
、androidx.activity:activity-ktx:1.3.0
がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください。
1.2.0 以降の重要な変更
- Activity Compose のアーティファクト -
activity-compose
アーティファクトは、Jetpack Compose UI をアクティビティ内でホストするためのsetContent
拡張メソッド、ComponentActivity
API(システムの [戻る] ボタンを処理する)および Activity Result API とやり取りする Compose 専用ラッパーを提供します。詳しくは、ドキュメントをご覧ください。 - CaptureVideo コントラクト -
CaptureVideo
ActivityResultContract
は、非推奨になったTakeVideo
コントラクトに代わるもので、多くのカメラアプリで機能する成功を示すブール値を返します。 - ピクチャー イン ピクチャー ヒントビューのトラッキング -
activity-ktx
のユーザーは、Activity
にtrackPipAnimationHintView
拡張メソッドを使用し、ウィンドウに対する相対位置が変化するのに応じて、PictureInPictureParams
をビューの新しい位置で自動的に再構築できます。
バージョン 1.3.0-rc02
2021 年 7 月 14 日
androidx.activity:activity:1.3.0-rc02
、androidx.activity:activity-compose:1.3.0-rc02
、androidx.activity:activity-ktx:1.3.0-rc02
がリリースされました。バージョン 1.3.0-rc02 に含まれる commit については、こちらをご覧ください。
バグの修正
ActivityResultRegistry
コールバックが適切に保存、復元されるようになりました。これにより、コールバックが savedState で複製されることはありません。(I97816、b/191893160)
バージョン 1.3.0-rc01
2021 年 7 月 1 日
androidx.activity:activity:1.3.0-rc01
、androidx.activity:activity-compose:1.3.0-rc01
、androidx.activity:activity-ktx:1.3.0-rc01
がリリースされました。1.3.0-beta02
からの変更はありません。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-beta02
2021 年 6 月 16 日
androidx.activity:activity:1.3.0-beta02
、androidx.activity:activity-compose:1.3.0-beta02
、androidx.activity:activity-ktx:1.3.0-beta02
がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください。
Compose 1.0.0-beta09
に依存するように activity-compose
を更新しました。androidx.compose.ui:ui-test-junit4
に activity-compose
に対するコンパイル時の依存関係が追加されました。
バージョン 1.3.0-beta01
2021 年 6 月 2 日
androidx.activity:activity:1.3.0-beta01
、androidx.activity:activity-compose:1.3.0-beta01
、androidx.activity:activity-ktx:1.3.0-beta01
がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください。
API の変更
- 以前に非推奨になった
@Composable registerForActivityResult()
メソッドが削除されました。rememberLauncherForActivityResult()
をご使用ください。(Ic39d3)
バージョン 1.3.0-alpha08
2021 年 5 月 18 日
androidx.activity:activity:1.3.0-alpha08
、androidx.activity:activity-compose:1.3.0-alpha08
、androidx.activity:activity-ktx:1.3.0-alpha08
がリリースされました。バージョン 1.3.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
- 新しい
CaptureVideo
ActivityResultContract
は、指定された URI に動画が正常に保存されたかどうかを示すブール値をActivityResultCallback
に返します。非推奨となったTakeVideo
コントラクトは、カメラアプリでサムネイル ビットマップを返すのは非常にまれであり、結果が有用でなくなるため、これによって置き換えられました。(Ie21f2、b/185938070) - ビューの移動に応じて PipParams のソース長方形のヒントを更新するために、新しい API
Activity#setPipAnimationHintView
を追加しました。(I9063d)
API の変更
rememberLauncherForActivityResult
関数がランチャーを返すようになり、unregister()
関数は非推奨となりました。ランチャーの登録と登録解除はrememberLauncherForActivityResult
によって自動的に処理されます。(I2443e)
Compose の互換性
androidx.activity:activity-compose:1.3.0-alpha08
は、Compose バージョン1.0.0-beta07
以降に対してのみ互換性があります。
バージョン 1.3.0-alpha07
2021 年 4 月 21 日
androidx.activity:activity:1.3.0-alpha07
、androidx.activity:activity-compose:1.3.0-alpha07
、androidx.activity:activity-ktx:1.3.0-alpha07
がリリースされました。バージョン 1.3.0-alpha07 に含まれる commit については、こちらをご覧ください。
バグの修正
- 再コンポジションによってコントラクトが変更された場合でも、
rememberLauncherForActivityResult
が同じActivityResultLauncher
インスタンスへの安定した参照を返すようになりました。(Id2d6d) 1.3.0
より新しい不安定なバージョンの Fragment を使用しても、1.3.0
の使用を促す誤判定の lint エラーがスローされなくなりました。(aosp/1670206、b/184847092)
バージョン 1.3.0-alpha06
2021 年 4 月 7 日
androidx.activity:activity:1.3.0-alpha06
、androidx.activity:activity-compose:1.3.0-alpha06
、androidx.activity:activity-ktx:1.3.0-alpha06
がリリースされました。バージョン 1.3.0-alpha06 に含まれる commit については、こちらをご覧ください。
API の変更
registerForActivityResult()
API の名前がrememberLauncherForActivityResult()
に変更されました。これにより、返されたActivityResultLauncher
が、ユーザーに代わって覚えている管理オブジェクトであることをわかりやすく示すことができます。返されたActivityResultLauncher
でunregister
を呼び出そうとすると、エラーがスローされるようになりました。(I2bb6d)LocalOnBackPressedDispatcherOwner.current
とLocalActivityResultRegistryOwner.current
が、現在の合成中に使用可能かどうかを判断しやすくするための null 許容値を返すようになりました。BackHandler
やrememberLauncherForActivityResult()
などの API が必要な API で、基になるオーナーが見つからない場合、より詳細な説明エラーがスローされるようになりました。NavHost
が、NavHost
をプレビューしている場合など、OnBackPressedDispatcherOwner
が見つからないときでも機能するようになりました。(I7d8b4)
バグの修正
- アクティビティが
STOPPED
になり、再度STARTED
に変化した際に、BackHandler
が [戻る] を適切にインターセプトするようになり、LifecycleOwner によって他のコールバックが追加されるようになりました。(I71de6、b/182284739) Unit
入力があるカスタムActivityResultContract
でlaunch()
メソッド拡張機能を使用しても、NullPointerException
を引き起こさなくなりました(I76282、b/183837954)。
バージョン 1.3.0-alpha05
2021 年 3 月 24 日
androidx.activity:activity:1.3.0-alpha05
、androidx.activity:activity-compose:1.3.0-alpha05
、androidx.activity:activity-ktx:1.3.0-alpha05
がリリースされました。バージョン 1.3.0-alpha05 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity 1.2.2 以降: Fragment 1.3.1 以降の使用時に誤作動を引き起こす
InvalidFragmentVersionForActivityResult
lint チェックの問題を修正しました。(I54da1、b/182388985) - Activity 1.2.2 以降:
ComponentActivity
で、別のIntent
の追加要素として保持されていたActivityResultContract
からIntent
を起動したときに、ClassNotFoundException
が発生しないようになりました。(Ieff05、b/182906230)
依存関係の更新
- Activity 1.2.2 以降: Activity が Lifecycle
2.3.1
に依存するようになりました。
バージョン 1.3.0-alpha04
2021 年 3 月 10 日
androidx.activity:activity:1.3.0-alpha04
、androidx.activity:activity-compose:1.3.0-alpha04
、androidx.activity:activity-ktx:1.3.0-alpha04
がリリースされました。バージョン 1.3.0-alpha04 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity
1.2.1
から: 以前に付与されていなかった権限だけでなく、リクエストされたすべての権限に対して、RequestMultiplePermissions
が常に結果を返すようになりました。(I50bc3、b/180884668) - Activity
1.2.1
から:ActivityResultRegistry
により、unregister()
の後にregister()
を同じキーで再度実行しても、処理中のlaunch()
リクエストが結果を返すようになりました。(I9ef34、b/181267562) - Activity Compose は、ランタイム クラスパスにテスト依存関係を追加しなくなりました。(Ifd8b3)
- 以前に設定した
onBack
ラムダが再コンポジション後も引き続き使用されていたBackHandler
の問題を修正しました。(8eb5eb)
バージョン 1.3.0-alpha03
2021 年 2 月 24 日
androidx.activity:activity:1.3.0-alpha03
、androidx.activity:activity-compose:1.3.0-alpha03
、androidx.activity:activity-ktx:1.3.0-alpha03
がリリースされました。バージョン 1.3.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- composable 内のアクティビティから結果を取得するためのコンポーズ可能な
registerForActivityResult
関数を追加しました。(Ia7851、b/172690553)
API の変更
LocalOnBackPressedDispatcherOwner
にCompositionLocalProvider
で使用できるprovides
関数が追加され、asProvidableCompositionLocal()
API が置き換えられました。(I45d24)
バージョン 1.3.0-alpha02
2021 年 2 月 10 日
androidx.activity:activity:1.3.0-alpha02
、androidx.activity:activity-compose:1.3.0-alpha02
、androidx.activity:activity-ktx:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity Compose
1.3.0-alpha01
で Compose1.0.0-alpha12
の使用時にNoSuchMethodError: No static method setContent
例外が発生する問題を修正しました。すべての Compose ユーザーは1.3.0-alpha02
以降に依存する必要があります。(b/179911234)
API の変更
BackHandler
API を使用すると、Composable がシステムの [戻る] ボタンをインターセプトできます。(I58ed5、b/172154006)
バージョン 1.3.0-alpha01
2021 年 2 月 10 日
androidx.activity:activity:1.3.0-alpha01
、androidx.activity:activity-compose:1.3.0-alpha01
、androidx.activity:activity-ktx:1.3.0-alpha01
がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 新しい
activity-compose
アーティファクトでは、androidx.activity
固有の API 用の Jetpack Compose 固有のヘルパーを利用できます。ComponentActivity.setContent
がandroidx.compose.ui.platform.setContent
からandroidx.activity.compose.setContent
に移動しました。(Icf416)
既知の問題
- Activity Compose
1.3.0-alpha01
とそれに依存するライブラリ(androidx.compose.ui:ui-test-junit4:1.0.0-alpha12
など)を使用すると、NoSuchMethodError: No static method setContent
例外が発生します。(b/179911234)
バージョン 1.2.4
バージョン 1.2.4
2021 年 7 月 21 日
androidx.activity:activity:1.2.4
と androidx.activity:activity-ktx:1.2.4
がリリースされました。バージョン 1.2.4 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity
1.3.0-rc02
以降: ActivityResultRegistry コールバックが適切に保存、復元されるようになりました。これにより、コールバックが savedState で複製されることはありません。(I97816、b/191893160)
バージョン 1.2.3
バージョン 1.2.3
2021 年 5 月 5 日
androidx.activity:activity:1.2.3
と androidx.activity:activity-ktx:1.2.3
がリリースされました。バージョン 1.2.3 に含まれる commit については、こちらをご覧ください。
バグの修正
Unit
入力があるカスタムActivityResultContract
でlaunch()
メソッド拡張機能を使用しても、NullPointerException
を引き起こさなくなりました(I76282、b/183837954)。- Fragment の新しいバージョンのスナップショット、アルファ版、ベータ版、または RC 版ビルドを使用している場合に Fragment
1.3.0
の使用を要求する誤検出の lint エラーを修正しました。(f4a57e、b/184847092)
バージョン 1.2.2
バージョン 1.2.2
2021 年 3 月 24 日
androidx.activity:activity:1.2.2
と androidx.activity:activity-ktx:1.2.2
がリリースされました。バージョン 1.2.2 に含まれる commit については、こちらをご覧ください。
バグの修正
- Fragment 1.3.1 以降の使用時に誤作動を引き起こす
InvalidFragmentVersionForActivityResult
lint チェックの問題を修正しました。(I54da1、b/182388985) ComponentActivity
で、別のIntent
の追加要素として保持されていたActivityResultContract
からIntent
を起動したときに、ClassNotFoundException
が発生しないようになりました。(Ieff05、b/182906230)
依存関係の更新
- Activity が Lifecycle
2.3.1
に依存するようになりました。
バージョン 1.2.1
バージョン 1.2.1
2021 年 3 月 10 日
androidx.activity:activity:1.2.1
と androidx.activity:activity-ktx:1.2.1
がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください。
バグの修正
RequestMultiplePermissions
が、以前に付与されていなかった権限だけでなく、リクエストされたすべての権限に対して結果を返すようになりました。(I50bc3、b/180884668)ActivityResultRegistry
により、unregister()
の後にregister()
を同じキーで再度実行しても、処理中のlaunch()
リクエストが結果を返すようになりました。(I9ef34、b/181267562)
バージョン 1.2.0
バージョン 1.2.0
2021 年 2 月 10 日
androidx.activity:activity:1.2.0
と androidx.activity:activity-ktx:1.2.0
がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の主な変更
- Activity Result API:
ComponentActivity
でActivityResultRegistry
が利用できるようになり、Activity または Fragment のメソッドをオーバーライドせずにstartActivityForResult()
+onActivityResult()
、requestPermissions()
+onRequestPermissionsResult()
の各フローを処理できるようになりました。ActivityResultContract
によりタイプ セーフティーが向上し、これらのフローをテストするためのフックを提供するようになりました。更新されたアクティビティから結果を取得するをご覧ください。
ContextAware
:ComponentActivity
がContextAware
を実装し、ベースのActivity.onCreate()
の前にコールバックを受け取るOnContextAvailableListener
インスタンスを 1 つ以上追加できるようになりました。- 停止性 Kotlin 拡張機能
withContextAvailable()
を使用すると、Context が利用可能になったときに、非停止性ブロックを実行して結果を返すことができます。 - この API は、Fragment 1.3.0 で
FragmentActivity
がFragmentManager
の状態を復元するために使用します。FragmentActivity
のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。 - この API は、AppCompat 1.3.0-alpha02 以降で
AppCompatActivity
が使用します。AppCompatActivity
のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。
- 停止性 Kotlin 拡張機能
ViewTree
のサポート: Lifecycle2.3.0
と SavedState1.1.0
に追加されたViewTreeLifecycleOwner.get(View)
、ViewTreeViewModelStoreOwner.get(View)
、ViewTreeSavedStateRegistryOwner
API に対するサポートをComponentActivity
に追加し、ComponentActivity
に直接追加された View のLifecycleOwner
、ViewModelStoreOwner
、SavedStateRegistryOwner
として Activity を返すようになりました。
- reportFullyDrawn() バックポート - すべての API レベルで機能するように
reportFullyDrawn()
のActivity
メソッドがComponentActivity
にバックポートされました。これにより、API 19 でのクラッシュが修正され、すべての API レベルでこのメソッドのトレースが追加されました。
バージョン 1.2.0-rc01
2020 年 12 月 16 日
androidx.activity:activity:1.2.0-rc01
と androidx.activity:activity-ktx:1.2.0-rc01
がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
バグの修正
ActivityResultRegistry
が保存された状態が常に正確に復元されるようになりました。(Idd56b)ComponentActivity.reportFullyDrawn
に対するトレースを追加(Ic7632)
外部からの協力
ComponentActivity
がreportFullyDrawn()
をオーバーライドするようになったことで、すべての API レベルで呼び出し可能となり、API 19 のデバイスで適切なシステム権限を付与せずに呼び出した際にクラッシュする問題が修正されました。Simon Schiller 氏に感謝いたします。(b/163239764、#103)
バージョン 1.2.0-beta02
2020 年 12 月 2 日
androidx.activity:activity:1.2.0-beta02
と androidx.activity:activity-ktx:1.2.0-beta02
がリリースされました。バージョン 1.2.0-beta02 に含まれる commit については、こちらをご覧ください。
バグの修正
- Activity Result API で
Lifecycle
に登録した場合に、ライフサイクルがSTARTED
になる前に結果が配信される問題を修正しました。(I109ea)
外部からの協力
launch()
のドキュメントを更新して、ActivityNotFoundException
をスローする可能性があることを明記しました。Michał Zieliński 氏に感謝いたします。(aosp/1493580)
バージョン 1.2.0-beta01
2020 年 10 月 1 日
androidx.activity:activity:1.2.0-beta01
と androidx.activity:activity-ktx:1.2.0-beta01
がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
バグの修正
ActivityResultRegistry
は、リクエスト コードregister()
としての使用に割り当てられていない整数が見つかるまで、整数をランダムに生成するようになりました。これにより、リクエスト コードの増加によって発生する可能性のある整数オーバーフローを防ぐことできます。(b/168779518)ActivityResultLauncher
でunregister()
を呼び出すと、Lifecycle
オブザーバーが適切に削除されるようになりました。(b/165608393)
動作の変更
Lifecycle
がすでにSTARTED
に達しているLifecycleOwner
でregister()
を呼び出そうとすると、ActivityResultRegistry
がIllegalStateException
をスローするようになりました。(b/165435866)
ドキュメントの更新
ContextAware
ドキュメントがLifecycleOwner
にリンクされています。Lifecycle
コールバックは、作成イベントおよび破棄イベントに適した場所としてハイライト表示されています。(aosp/1414152)
バージョン 1.2.0-alpha08
2020 年 8 月 19 日
androidx.activity:activity:1.2.0-alpha08
と androidx.activity:activity-ktx:1.2.0-alpha08
がリリースされました。バージョン 1.2.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
ComponentActivity
がContextAware
を実装し、ベースのActivity.onCreate()
の前にコールバックを受け取るOnContextAvailableListener
インスタンスを 1 つ以上追加できるようになりました。(b/161390636)- 停止性 Kotlin 拡張機能
withContextAvailable()
を使用すると、Context が利用可能になったときに、非停止性ブロックを実行して結果を返すことができます。(I8290c) - この API は、Fragment 1.3.0-alpha08 で
FragmentActivity
がFragmentManager
の状態を復元するために使用します。FragmentActivity
のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。(I513da) - この API は、AppCompat 1.3.0-alpha02 で
AppCompatActivity
が使用します。AppCompatActivity
のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。(I513da)
- 停止性 Kotlin 拡張機能
バグの修正
- lint 27.1.0 以降を使用している場合に
ActivityResultFragmentVersionDetector
lint チェックで発生する不具合を修正しました。(b/162155191)
バージョン 1.2.0-alpha07
2020 年 7 月 22 日
androidx.activity:activity:1.2.0-alpha07
と androidx.activity:activity-ktx:1.2.0-alpha07
がリリースされました。バージョン 1.2.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- Activity Result API を使用するときに Fragment
1.3.0-alpha07
を使用していることを確認する新しいInvalidFragmentVersionForActivityResult
lint チェックを追加しました。これにより、古いバージョンの Fragment の使用に起因する、「無効なリクエスト コード」問題によるランタイムのクラッシュと、権限リクエストの動作不能を回避できます。(b/152554847)
外部からの協力
RequestPermission
Activity Result コントラクトの結果を解析する際にArrayIndexOutOfBoundsException
が発生する問題が解決されました。(I8f9e3、b/161057605)
バージョン 1.2.0-alpha06
2020 年 6 月 10 日
androidx.activity:activity:1.2.0-alpha06
と androidx.activity:activity-ktx:1.2.0-alpha06
がリリースされました。バージョン 1.2.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- Kotlin の
ActivityResult
クラスを分割して、requestCode
とintent
に直接アクセスできるようになりました。(b/157212935) ActivityResultLauncher
で、ランチャーの登録に使用されたActivityResultContract
を取得できるようになりました。(b/156875743)
API の変更
- 互換性を破る変更:
ActivityResultRegistry
のinvoke()
メソッドの名前をonLaunch()
に変更しました。(b/157496491) - 結果が返されない場合に、
OpenMultipleDocuments
コントラクトが登録済みのコールバックにnull
ではなく空のリストを返すようになりました。(b/157348014)
バージョン 1.2.0-alpha05
2020 年 5 月 20 日
androidx.activity:activity:1.2.0-alpha05
と androidx.activity:activity-ktx:1.2.0-alpha05
がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
ComponentActivity
内でView
を使用する際の、Lifecycle2.3.0-alpha03
のViewTreeViewModelStoreOwner
と SavedState1.1.0-alpha01
のViewTreeSavedStateRegistryOwner
のサポートを追加しました。(aosp/1297993、aosp/1300264)
API の変更
TakePicture
コントラクトは、指定されたUri
に画像を書き込む際にカメラアプリでサポートされることがほとんどなかったため、サムネイルのBitmap
ではなく、成功を示すboolean
を返すようになりました。(b/154302879)ActivityResultLauncher
のinvoke()
拡張機能が削除され、launch()
の明示的な使用により、非同期オペレーションであることがよりわかりやすく示されようになりました。ActivityResultLauncher<Void>
およびActivityResultLauncher<Unit>
のandroidx.activity.result
パッケージにlaunch
の Kotlin 拡張機能が追加されました。これにより、以前のinvoke()
拡張機能の動作をそれぞれミラーリングしていたnull
またはUnit
を渡す必要がなくなりました。(aosp/1304674、aosp/1304675)setFlagsMask()
とsetFlagsValues()
のIntentSenderRequest.Builder
メソッドが単一のsetFlags()
メソッドに統合されました。(aosp/1302111)
バグの修正
LifecycleOwner
でActivityResultCallback
を登録するときに、状態がSTARTED
に達する前にコールバックがトリガーされる問題を修正しました。(aosp/1309744)
動作の変更
ActivityResultRegistry
は、0
ではなく0xFFFF
で始まるリクエスト コードを生成するようになりました。これにより、アクティビティでstartActivityForResult()
またはrequestPermissions()
を使用する際の重複が防止されます。(aosp/1302324)
バージョン 1.2.0-alpha04
2020 年 4 月 29 日
androidx.activity:activity:1.2.0-alpha04
と androidx.activity:activity-ktx:1.2.0-alpha04
がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- ActivityResult API に対して startIntentSenderForResult を呼び出すことができるコントラクトを追加しました。(b/153007517)
API の変更
prepareCall()
メソッドの名前が、ここのComponentActivity
と Fragment1.3.0-alpha04
の両方で、registerForActivityResult()
に変更されました。(aosp/1278717)GetContents
、OpenDocuments
、RequestPermissions
コントラクトの名前がそれぞれGetMultipleContents
、OpenMultipleDocuments
、RequestMultiplePermissions
に変更されました。(aosp/1280161)ComponentActivity
にActivityResultRegisteryOwner
インターフェースが実装されました。(aosp/1290888)ComponentActivity
のstartActivityForResult()
/onActivityResult()
API とonRequestPermissionsResult()
API が非推奨になりました。Activity Result API を使用してください。(b/154751887)
バグの修正
GetMultipleContents
およびOpenMultipleDocuments
コントラクトを使用している場合に、1 つのアイテムを選択したとき、コールバックに正しく返されるようになりました。(b/152941153)
バージョン 1.2.0-alpha03
2020 年 4 月 1 日
androidx.activity:activity:1.2.0-alpha03
と androidx.activity:activity-ktx:1.2.0-alpha03
がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
TakeVideo
、PickContact
、GetContent
、GetContents
、OpenDocument
、OpenDocuments
、OpenDocumentTree
、CreateDocument
のコントラクトをActivityResultContracts
が提供する事前ビルド済みのコントラクトのセットに追加しました。(aosp/1262482、aosp/1266916、aosp/1268960)- Activity Result API で、オプションの
ActivityOptionsCompat
を使用して結果のアクティビティを起動できるようになりました。(b/151860054)
API の変更
TakePicture
コントラクトは、イメージを保存する場所を指定するUri
の入力を受け取るようになりました。入力を受け取らない以前のコントラクトの名前をTakePicturePreview
に変更しました。(aosp/1262482)ActivityResultRegistry
のregisterActivityResultCallback()
メソッドの名前をregister()
に変更しました。(aosp/1267621)ActivityResultLauncher
のdispose()
メソッドの名前をunregister()
に変更し、ActivityResultRegistry
のunregisterResultCallback()
を削除しました。(aosp/1267621)ActivityResultContact
のcreateIntent()
メソッドは、明示的なインテントを作成できるように、入力に加えてContext
を受け取るようになりました。(aosp/1238800)ActivityResultContract
がgetSynchronousResult()
をオーバーライドして、startActivityForResult
を呼び出さずに結果を提供できるようになりました。これは、リクエストされた権限がすでに付与されている場合に、RequestPermission
コントラクトとRequestPermissions
コントラクトで「許可」ステータスを正しく提供するために使用されます。(b/151110799)- これまで使用できた
Dial
コントラクトは、Intent
がstartActivityForResult()
で使用されることを想定していないため、削除しました。(aosp/1266916) - 機能の拡張を想定していない Activity Result API の多くが
final
になりました。これにはgetActivityResultRegistry()
、prepareCall()
メソッド、invoke()
以外のすべてのActivityResultRegistry
のメソッド、オプションの追加機能をサポートしていない複数のデフォルトのコントラクトが含まれます。(b/152439361)
バグの修正
- 構成の変更後にまだ再登録されていないコールバックに結果を提供しようとする際の
ActivityResultRegistry
のNullPointerException
を修正しました。ActivityResultRegistry
は、こうした保留中の結果を保持し、コールバックが再登録されたときに提供するようになりました。(b/152137004)
バージョン 1.2.0-alpha02
2020 年 3 月 18 日
androidx.activity:activity:1.2.0-alpha02
と androidx.activity:activity-ktx:1.2.0-alpha02
がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- ActivityResultRegistry:
ComponentActivity
でActivityResultRegistry
が利用できるようになり、アクティビティまたはフラグメントのメソッドをオーバーライドせずにstartActivityForResult()
+onActivityResult()
、requestPermissions()
+onRequestPermissionsResult()
の各フローを処理できるようになりました。ActivityResultContract
によりタイプ セーフティーが向上し、これらのフローをテストするためのフックを提供するようになりました。更新された アクティビティから結果を取得するをご覧ください。(b/125158199)
バージョン 1.2.0-alpha01
2020 年 3 月 4 日
androidx.activity:activity:1.2.0-alpha01
と androidx.activity:activity-ktx:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- Lifecycle
2.3.0-alpha01
に追加されたViewTreeLifecycleOwner.get(View)
API に対するサポートを追加し、アクティビティに直接追加されたビューのLifecycleOwner
としてアクティビティを返すようになりました。(aosp/1182955)
バグの修正
- Activity
1.1.0
で発生する回帰を修正しました。この回帰は、android.app.FragmentManager
のバグが原因でonBackPressed()
によってIllegalStateException
が発生する以前のバージョンのプラットフォームで実行している場合に発生していました。(b/146290338)
バージョン 1.1.0
バージョン 1.1.0
2020 年 1 月 22 日
androidx.activity:activity:1.1.0
がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
- Lifecycle ViewModel SavedState の統合:
SavedStateViewModelFactory
は、ComponentActivity
またはそのサブクラスでby viewModels()
、ViewModelProvider
コンストラクタ、またはViewModelProviders.of()
を使用するときのデフォルト ファクトリになりました。
バージョン 1.1.0-rc03
2019 年 12 月 4 日
androidx.activity:activity:1.1.0-rc03
と androidx.activity:activity-ktx:1.1.0-rc03
がリリースされました。バージョン 1.1.0-rc03 に含まれる commit については、こちらをご覧ください。
依存関係の変更
- Activity が Lifecycle
2.2.0-rc03
と Lifecycle ViewModel SavedState1.0.0-rc03
に依存するようになりました。
バージョン 1.1.0-rc02
2019 年 11 月 7 日
androidx.activity:activity:1.1.0-rc02
と androidx.activity:activity-ktx:1.1.0-rc02
がリリースされました。バージョン 1.1.0-rc02 に含まれる commit については、こちらをご覧ください。
依存関係の変更
- Activity が Lifecycle
2.2.0-rc02
に依存するようになりました。
バージョン 1.1.0-rc01
2019 年 10 月 23 日
androidx.activity:activity:1.1.0-rc01
と androidx.activity:activity-ktx:1.1.0-rc01
がリリースされました。1.1.0-beta01
からの変更はありません。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.1.0-beta01
2019 年 10 月 9 日
androidx.activity:activity:1.1.0-beta01
と androidx.activity:activity-ktx:1.1.0-beta01
がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
依存関係の変更
- Activity が SavedState 1.0.0 安定版に依存するようになりました。
バージョン 1.1.0-alpha03
2019 年 9 月 5 日
androidx.activity:activity:1.1.0-alpha03
と androidx.activity:activity-ktx:1.1.0-alpha03
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
- Activity が Core 1.1.0 安定版に依存するようになりました。
バグの修正
- Activity が Lifecycle
2.2.0-alpha04
に依存するようになりました。
バージョン 1.1.0-alpha02
2019 年 8 月 7 日
androidx.activity:activity:1.1.0-alpha02
と androidx.activity:activity-ktx:1.1.0-alpha02
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
SavedStateViewModelFactory
は、ComponentActivity
でby viewModels()
、ViewModelProvider
コンストラクタ、またはViewModelProviders.of()
を使用するときのデフォルト ファクトリになりました(b/135716331)
バージョン 1.1.0-alpha01
2019 年 7 月 2 日
androidx.activity:activity:1.1.0-alpha01
と androidx.activity:activity-ktx:1.1.0-alpha01
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
新機能
activity
が Lifecycle2.2.0-alpha02
に依存するようになりました(aosp/1007817)activity-ktx
でlifecycle-runtime-ktx
への依存関係が追加されました。activity-ktx
またはactivity-ktx
に依存するライブラリ(fragment-ktx
など)を使用する際、明示的に依存関係に追加する必要がなくなりました(aosp/987162)
バージョン 1.0.0
バージョン 1.0.0
2019 年 9 月 5 日
androidx.activity:activity:1.0.0
と androidx.activity:activity-ktx:1.0.0
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
- ComponentActivity:
ComponentActivity
は、Fragment1.1.0
ではFragmentActivity
の新しいベースクラスとして、さらに AppCompat1.1.0
では拡張機能によりAppCompatActivity
の新しいベースクラスとして機能します。 - activity-ktx:
activity-ktx
モジュールには、ViewModels にアクセスするためのby viewModels
Kotlin プロパティの拡張機能が含まれています。Fragment1.1.0
からfragment-ktx
を含めると、このモジュールが自動的に含まれます。 - OnBackPressedDispatcher:
onBackPressed()
をオーバーライドする代わりに構成可能な手段として、任意のLifecycleOwner
(フラグメントなど)からOnBackPressedCallback
を登録して、システムの [戻る] ボタンのイベントをインターセプトできるようになりました。レシーバのバージョンがaddCallback
のラムダがactivity-ktx
に追加されました。詳細については、「戻る」カスタム ナビゲーションの提供に関するドキュメントをご覧ください。 - onRetainCustomNonConfigurationInstance の非推奨:
onRetainCustomNonConfigurationInstance()
と、関連するgetLastCustomNonConfigurationInstance()
API が非推奨になりました。非構成状態の保存には ViewModels を使用することを強くおすすめします。ViewModelStoreOwner
に適した構成可能なソリューションが提供されるので、保持されるオブジェクトの所有権が明確になり、アクティビティが最終的に破棄されるときにリソースをクリーンアップするonCleared()
コールバックが提供されます。
バージョン 1.0.0-rc01
2019 年 7 月 2 日
androidx.activity:activity:1.0.0-rc01
と androidx.activity:activity-ktx:1.0.0-rc01
がリリースされました。1.0.0-beta01
からの変更はありません。このバージョンに含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-beta01
2019 年 6 月 5 日
androidx.activity::activity:1.0.0-beta01
と androidx.activity:activity-ktx:1.0.0-beta01
がリリースされました。1.0.0-alpha08
からの変更はありません。このバージョンに含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha08
2019 年 5 月 7 日
androidx.activity:activity:1.0.0-alpha08
と androidx.activity:activity-ktx:1.0.0-alpha08
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
API の変更
- 互換性を破る変更: すでに非推奨になっていた
ComponentActivity
のaddOnBackPressedCallback
メソッドとremoveOnBackPressedCallback
メソッドが削除されました(aosp/953857) OnBackPressedCallback
のsetEnabled()
メソッドとisEnabled()
メソッドが最終版になりました(b/131416833)OnBackPressedCallback
のremove()
メソッドが最終版になりました(aosp/952720)OnBackPressedDispatcher
にパブリック コンストラクタが追加され、テストなどのために独自のインスタンスを作成できるようになりました(aosp/953431)ComponentActivity
のonBackPressed()
が@MainThread
として明示的にマークされるようになりました(aosp/952721)
バグの修正
LifecycleOwner
で追加されたOnBackPressedCalback
のhandleOnBackPressed()
メソッド内からremove()
を呼び出すときのConcurrentModificationException
が修正されました(b/131765095)
バージョン 1.0.0-alpha07
2019 年 4 月 25 日
androidx.activity:activity:1.0.0-alpha07
と androidx.activity:activity-ktx:1.0.0-alpha07
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
API の変更
このリリースでは、onBackPressed()
の処理が大幅に変更されています。詳細については、更新された「戻る」カスタム ナビゲーションに関するドキュメントをご覧ください。
OnBackPressedCallback
とOnBackPressedDispatcher
のメソッドは@MainThread
としてマークされています(aosp/943813)handleOnBackPressed()
メソッドがboolean
を返さなくなりました。代わりに、OnBackPressedCallback
が有効または無効にできる抽象クラスになりました。新しいisEnabled()
メソッドは true を返す場合にのみ、handleOnBackPressed()
を呼び出し、[戻る] ボタンを処理する必要があります(aosp/944518)OnBackPressedDispatcher
のaddCallback
メソッドがCancellable
インスタンスを返さなくなりました。この機能を実現するremove()
メソッドがOnBackPressedCallback
に追加され、handleOnBackPressed()
でremove()
を呼び出せるようになりました(aosp/944519)(aosp/946316)handleOnBackPressed()
を実装しisEnabled
とremove()
にアクセスできるラムダを受け取る、addCallback
のレシーバ スコープ コールバックがactivity-ktx
に追加されました(aosp/944520)
バージョン 1.0.0-alpha06
2019 年 4 月 3 日
androidx.activity:activity:1.0.0-alpha06
と androidx.activity:activity-ktx:1.0.0-alpha06
がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。
API の変更
- ComponentActivity に、
@LayoutRes int
を受け取る 2 つ目のコンストラクタが追加されました。このコンストラクタは、AppCompatActivity クラスをアノテーションする以前の動作を@ContentView
で置き換えます。この方法は、アプリとライブラリの両方のモジュールで機能します(b/128352521) getOnBackPressedDispatcher()
を介して取得できる新しいOnBackPressedDispatcher
を優先して、ComponentActivity のOnBackPressedCallback
関連 API が非推奨になりました(aosp/922523)- 新しい
OnBackPressedCallback
をOnBackPressedDispatcher
に追加するメソッドがCancellable
オブジェクトを返すようになり、OnBackPressedDispatcher
への明示的な参照を必要とせずに、コールバックを削除できるようになりました(aosp/922523) LifecycleOwner
に関連付けてOnBackPressedCallback
を追加すると、Lifecycle の開始時と停止時にOnBackPressedCallback
がそれぞれ追加、削除されるようになりました(aosp/922523)
バージョン 1.0.0-alpha05
2019 年 3 月 13 日
androidx.activity:activity:1.0.0-alpha05
と androidx.activity:activity-ktx:1.0.0-alpha05
がリリースされました。このリリースに含まれる commit の完全なリストについては、こちらをご覧ください。
新機能
@ContentView
アノテーション ルックアップがキャッシュされるようになりました(b/123709449)
バージョン 1.0.0-alpha04
2019 年 1 月 30 日
androidx.activity:activity 1.0.0-alpha04
と androidx.activity:activity-ktx 1.0.0-alpha04
がリリースされました。
新機能
setContentView()
を使用する代わりに、どのレイアウト XML ファイルを拡張するかを指定できる@ContentView
クラス アノテーションのサポートが追加されました(aosp/837619)
API の変更
getViewModelStore()
はオーバーライドすべきでない、今後のリリースで最終版になるという注記が追加されました。現在このメソッドをオーバーライドしている場合は、機能をリクエストしてください(aosp/837619)
バグの修正
activity-ktx
モジュールの依存関係と一致するように、activity
モジュールが ViewModel のバージョン 2.1.0-alpha02 に依存するようになりました。
バージョン 1.0.0-alpha03
2018 年 12 月 17 日
androidx.activity 1.0.0-alpha03
がリリースされました。
新機能
- ComponentActivity が
BundleSavedStateRegistryOwner
を実装し、新しくリリースされた SavedState ライブラリに依存するようになりました(aosp/815133) - ComponentActivity は、InputMethodManager が最後にフォーカスされたビューをリークさせる Android フレームワークのバグを回避するようになりました(b/37122102)
バージョン 1.0.0-alpha02
2018 年 12 月 3 日
API の変更
getLifecycle()
はオーバーライドすべきでなく、今後のリリースでfinal
になるという注記を追加しました。現在このメソッドをオーバーライドしている場合は、機能リクエストを提出してください。(aosp/815834)
バージョン 1.0.0-alpha01
2018 年 11 月 5 日
androidx.activity 1.0.0-alpha01
では、既存の FragmentActivity
と AppCompatActivity
の新しい基本クラスである ComponentActivity
が導入されました。
新機能
addOnBackPressedCallback
を介してOnBackPressedCallback
を登録することにより、アクティビティでメソッドをオーバーライドしなくてもonBackPressed()
コールバックを受け取れるようになりました。ComponentActivity
からViewModel
を取得するための新しいby viewModels()
Kotlin プロパティ デリゲートを追加しました。- 保留中の入力イベント(クリックなど)が
onStop()
でキャンセルされるようになりました。
API の変更
LifecycleOwner
とViewModelStoreOwner
の実装がFragmentActivity
からComponentActivity
に移動されました。onRetainCustomNonConfigurationInstance
が非推奨になりました。構成の変更に影響されないことを要するオブジェクトを保存するには、ViewModel
を使用してください。