アクティビティ

アクティビティの上に構築されるコンポーズ可能な API にアクセスします。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 12 月 11 日 1.9.3 1.10.0-rc01 - -

依存関係の宣言

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-rc01

2024 年 12 月 11 日

androidx.activity:activity:1.10.0-rc01androidx.activity:activity-compose:1.10.0-rc01androidx.activity:activity-ktx:1.10.0-rc01 がリリースされました。バージョン 1.10.0-rc01 に含まれる commit については、こちらをご覧ください。

バグの修正

  • PredictiveBackHandler が現在アクティブなときに有効な状態を変更すると、コールバックがすぐにショート サーキットする問題を修正しました。有効なステータスの変更に関係なく、現在のコールバックが終了するようになりました。(Ib8719

バージョン 1.10.0-beta01

2024 年 11 月 13 日

androidx.activity:activity:1.10.0-beta01androidx.activity:activity-compose:1.10.0-beta01androidx.activity:activity-ktx:1.10.0-beta01 がリリースされました。前回のアルファ版からの変更はありません。バージョン 1.10.0-beta01 には、これらの commit が含まれています。

バージョン 1.10.0-alpha03

2024 年 10 月 30 日

androidx.activity:activity:1.10.0-alpha03androidx.activity:activity-compose:1.10.0-alpha03androidx.activity:activity-ktx:1.10.0-alpha03 がリリースされました。バージョン 1.10.0-alpha03 に含まれる commit はこちらをご覧ください。

API の変更

  • 現在のスコープの Activity を提供する新しい LocalActivity コンポジション ローカルを追加しました。これにより、デベロッパーが LocalContext から Activity を取得する必要がなくなりました。また、LocalContextActivity に誤ってキャストされているかどうかを確認する新しい lint ルールも追加されています。(I7746ab/283009666

バグの修正

  • Activity 1.9.3 以降: ハンドラが無効になった後、PredictiveBackHandler がコールバックを呼び出さなくなりました。これにより、Navigation Compose の NavHostIndexOutOfBoundsException をスローする問題が修正されます。(I3f75eb/365027664b/340202286

依存関係の更新

  • Activity Compose が Compose Runtime 1.7.0 に依存するようになりました。(I7746ab/283009666

バージョン 1.10.0-alpha02

2024 年 9 月 4 日

androidx.activity:activity:1.10.0-alpha02androidx.activity:activity-compose:1.10.0-alpha02androidx.activity:activity-ktx:1.10.0-alpha02 がリリースされました。バージョン 1.10.0-alpha02 には、これらの commit が含まれています。

動作の変更

  • 写真選択ツールをトリガーする PickVisualMediaPickMultipleVisualMedia の Activity Result コントラクトは、システムの写真選択ツールが使用できない場合、Google Play サービスに直接委任しなくなりました。代わりに、公開 ACTION_SYSTEM_FALLBACK_PICK_IMAGES アクションと関連するエクストラを使用して、OEM とシステムアプリに一貫した写真選択ツール エクスペリエンスをフォールバックとして提供します。Google Play 開発者サービスの最新バージョンを搭載したデバイスのユーザー エクスペリエンスには影響しません。(I3513d

バグの修正

  • 新しいプラットフォーム API へのアクセスの手動アウトラインを削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合、および AGP 8.1 以降(D8 バージョン 8.1 など)を使用するすべてのビルドで、API モデリングによって自動的に行われるためです。AGP を使用していないクライアントは、D8 バージョン 8.1 以降にアップデートすることをおすすめします。詳しくは、こちらの記事をご覧ください。(I9496cb/345472586
  • Activity 1.9.2 以降: Activity Compose PredictiveBackHandler API が、無効になっているフレームでシステムの [戻る] ジェスチャーを処理し続け、Navigation Compose などのライブラリが空のバックスタックでも [戻る] を処理し、IndexOutOfBoundsException をスローする可能性がある問題を修正しました。(Ie3301b/340202286
  • アクティビティ 1.9.1: システムの [戻る] を実行した後に、OnBackPressedDispatcher から onBackPressed を実行しようとすると失敗する PredictiveBackHandler の問題を修正しました。(I5f1f8

バージョン 1.10.0-alpha01

2024 年 6 月 26 日

androidx.activity:activity:1.10.0-alpha01androidx.activity:activity-compose:1.10.0-alpha01androidx.activity:activity-ktx:1.10.0-alpha01 がリリースされました。このバージョンは内部ブランチで開発されています。

新機能

  • Android V で導入された新しい PhotoPicker 機能のサポートを追加しました。たとえば、画像を順番に選択したり、最初に表示するタブ(アルバムまたは画像)を選択したりできます。

バージョン 1.9

バージョン 1.9.3

2024 年 10 月 16 日

androidx.activity:activity:1.9.3androidx.activity:activity-compose:1.9.3androidx.activity:activity-ktx:1.9.3 がリリースされました。バージョン 1.9.3 には、これらの commit が含まれています。

バグの修正

  • ハンドラが無効にされた後、PredictiveBackHandler はコールバックをトリガーしなくなりました。これにより、Navigation Compose の NavHostIndexOutOfBoundsException をスローする問題が修正されます。(I3f75eb/340202286

バージョン 1.9.2

2024 年 9 月 4 日

androidx.activity:activity:1.9.2androidx.activity:activity-compose:1.9.2androidx.activity:activity-ktx:1.9.2 がリリースされました。バージョン 1.9.2 には、これらの lthcocommits が含まれています。

バグの修正

  • Activity Compose の PredictiveBackHandler API が、無効になっているフレームでシステムの [戻る] ジェスチャーを処理し続け、Navigation Compose などのライブラリが空のバックスタックでも [戻る] を処理し、IndexOutOfBoundsException をスローする問題を修正しました。(Ie3301b/340202286

バージョン 1.9.1

2024 年 7 月 24 日

androidx.activity:activity:1.9.1androidx.activity:activity-compose:1.9.1androidx.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.0androidx.activity:activity-compose:1.9.0androidx.activity:activity-ktx:1.9.0 がリリースされました。バージョン 1.9.0 に含まれる commit は次のとおりです。

1.8.0 以降の重要な変更

  • ComponentActivityOnUserLeaveHintProvider を実装し、コンポーネントが onUserLeaveHint イベントのコールバックを許可できるようになりました。
  • OnBackPressedCallbackBackHandlerPredictiveBackHandler 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-rc01androidx.activity:activity-compose:1.9.0-rc01androidx.activity:activity-ktx:1.9.0-rc01 がリリースされました。バージョン 1.9.0-rc01 に含まれる commit については、こちらをご覧ください。

依存関係の更新

バージョン 1.9.0-beta01

2024 年 3 月 20 日

androidx.activity:activity:1.9.0-beta01androidx.activity:activity-compose:1.9.0-beta01androidx.activity:activity-ktx:1.9.0-beta01 がリリースされました。バージョン 1.9.0-beta01 には、これらの commit が含まれています。

バグの修正

  • アクティビティの作成の一環として OnBackPressedDispatcher を呼び出したために、アクティビティ 1.9.0-alpha02 で発生したアクティビティ起動時のパフォーマンスの回帰を修正しました。(Ie75e3

バージョン 1.9.0-alpha03

2024 年 2 月 7 日

androidx.activity:activity:1.9.0-alpha03androidx.activity:activity-compose:1.9.0-alpha03androidx.activity:activity-ktx:1.9.0-alpha03 がリリースされました。バージョン 1.9.0-alpha03 に含まれる commit については、こちらをご覧ください

Lint の警告

バグの修正

  • すでに実行中の予測型「戻る」ジェスチャー中にシステムから「戻る」イベントが送信された場合、現在実行中の予測型「戻る」ジェスチャーはキャンセルされ、新しい「戻る」イベントが引き継いで新しい予測型「戻る」ジェスチャーを開始します。(I3482e
  • バックグラウンド スレッドから ComponentActivity から onBackPressedDispatcher に初めてアクセスする際のクラッシュを修正しました。これで、任意のスレッドで onBackPressedDispatcher に安全にアクセスできるようになりました。(I79955

バージョン 1.9.0-alpha02

2024 年 1 月 24 日

androidx.activity:activity:1.9.0-alpha02androidx.activity:activity-compose:1.9.0-alpha02androidx.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
  • ComponentActivitytrackPipAnimationHintViewby viewModels() の Kotlin 拡張機能が activity-ktx から activity に移動されました。activity-ktx アーティファクトは完全に空になりました。(I0a444

バグの修正

  • enableEdgeToEdge API がディスプレイ カットアウトの周囲を描画するようになりました。(a3644bb/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-alpha01androidx.activity:activity-compose:1.9.0-alpha01androidx.activity:activity-ktx:1.9.0-alpha01 がリリースされました。バージョン 1.9.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • ComponentActivityOnUserLeaveHintProvider を実装し、コンポーネントが onUserLeaveHint イベントのコールバックを許可できるようになりました。(I54892

API の変更

  • ComponentActivity が Kotlin で書き換えられました。(I14f31
  • ActivityResultCaller が Kotlin で書き換えられました。(Ib02e4
  • ActivityResultLauncher が Kotlin で書き換えられました。この変換の一環として、getContract メソッドは抽象 Kotlin プロパティになりました。これはバイナリ互換性のある変更ですが、ActivityResultLauncher の実装が Kotlin で記述されている場合はソースの互換性を破る変更となります。(Id4615
  • PickVisualMediaRequest の最小 API レベルが、PickVisualMedia Activity Result コントラクトと同じ 19 になりました。(Id6e21

依存関係の更新

バージョン 1.8

バージョン 1.8.2

2023 年 12 月 13 日

androidx.activity:activity:1.8.2androidx.activity:activity-compose:1.8.2androidx.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.1androidx.activity:activity-compose:1.8.1androidx.activity:activity-ktx:1.8.1 がリリースされました。バージョン 1.8.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • OnBackPressedDispatcher が、戻るジェスチャーの処理中に新しい OnBackPressedCallback が追加された後も、正しい OnBackPressedCallback にディスパッチを続行するようになりました。(Id0ff6

バージョン 1.8.0

2023 年 10 月 4 日

androidx.activity:activity:1.8.0androidx.activity:activity-compose:1.8.0androidx.activity:activity-ktx:1.8.0 がリリースされました。バージョン 1.8.0 に含まれる commit については、こちらをご覧ください

1.7.0 以降の重要な変更

  • 予測型「戻る」 - OnBackPressedCallback に、戻るジェスチャーが commit されたときの以前の handleOnBackPressed() コールバックに加えて、新しい予測型「戻る」コールバックが導入されました。このコールバックは、戻るジェスチャーの開始、ジェスチャー全体の進行状況、戻るジェスチャーのキャンセルを処理します。また、Activity Compose で予測型「戻る」ジェスチャー イベントを処理する PredictiveBackHandler コンポーザブルも用意されています。指定した suspend ラムダで収集する必要がある 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-rc01androidx.activity:activity-compose:1.8.0-rc01androidx.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-beta01androidx.activity:activity-compose:1.8.0-beta01androidx.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-alpha07androidx.activity:activity-compose:1.8.0-alpha07androidx.activity:activity-ktx:1.8.0-alpha07 がリリースされました。バージョン 1.8.0-alpha07 に含まれる commit については、こちらをご覧ください。

新機能

  • Activity Compose に、予測型「戻る」ジェスチャー イベントを処理する新しい PredictiveBackHandler コンポーザブルが追加されました。指定した suspend ラムバで収集する必要がある 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
      }
    }
    

    また、Flowcollect() を呼び出すように、lint ルールによるコンパイル時警告も用意されています。(Id2773b/294884345

  • ComponentActivityonBackPressedDispatcher が遅延初期化されるようになり、必要な場合にのみ作成されるようになりました。(I0bf8e

バグの修正

  • Android 13 では、ComponentActivityonBackPressed() コールバックを受け取ったときに、アクティビティがすでに DESTROYED になっている場合に NPE が表示されなくなりました。(Idb055b/291869278
  • 試験運用版の isAtLeastU() API の使用を削除しました。(Ie9117b/289269026

バージョン 1.8.0-alpha06

2023 年 6 月 21 日

androidx.activity:activity:1.8.0-alpha06androidx.activity:activity-compose:1.8.0-alpha06androidx.activity:activity-ktx:1.8.0-alpha06 がリリースされました。バージョン 1.8.0-alpha06 に含まれる commit については、こちらをご覧ください

新機能

  • OnBackPressedDispatcher で、予測型「戻る」ジェスチャー中に削除されたコールバックが正しくキャンセルされるようになりました。(I3f90f

API の変更

  • SystemBarStyle.autoenableEdgeToEdge API に渡すときに、detectDarkMode ラムダ パラメータをオーバーライドして、夜間モードを検出するカスタム ロジックを指定できるようになりました。(aosp/2546393b/278263793

バージョン 1.8.0-alpha05

2023 年 6 月 7 日

androidx.activity:activity:1.8.0-alpha05androidx.activity:activity-compose:1.8.0-alpha05androidx.activity:activity-ktx:1.8.0-alpha05 がリリースされました。このバージョンは内部ブランチで開発されています。

API の変更

  • Activity に、フレームワークの BackEvent クラスから分離された、BackEvent の下位互換バージョンとして機能する BackEventCompat クラスが用意されました。
  • 互換性を破る変更: OnBackPressedCallbackhandleOnBackStarted メソッドと handleOnBackProgressed メソッドが、フレームワークの android.window.BackEvent クラスではなく androidx.activity.BackEventCompat インスタンスを受け取るようになりました。OnBackPressedDispatcher の同等の @VisibleForTesting API も更新されました。
  • OnBackPressedDispatcher のコンストラクタに、オプションの Consumer<Boolean> インスタンスが追加されました。これにより、有効なコールバックの数がゼロから非ゼロに、またはその逆に変化するたびに、ディスパッチャのオーナーがコールバックを受け取ることができるようになります。

バグの修正

バージョン 1.8.0-alpha04

2023 年 5 月 10 日

androidx.activity:activity:1.8.0-alpha04androidx.activity:activity-compose:1.8.0-alpha04androidx.activity:activity-ktx:1.8.0-alpha04 がリリースされました。これは内部ブランチからリリースされました。

バグの修正

  • Activity 1.7.1 以降: - ActivityScenarioComponentActivity を使用するときに ReportFullyDrawExecuter がリークしなくなりました。(Id2ff2b/277434271

バージョン 1.8.0-alpha03

2023 年 4 月 12 日

androidx.activity:activity:1.8.0-alpha03androidx.activity:activity-compose:1.8.0-alpha03androidx.activity:activity-ktx:1.8.0-alpha03 がリリースされました。これは内部ブランチからリリースされました。

新機能

  • ComponentActivity.setUpEdgeToEdge() を追加し、下位互換性のある方法でエッジ ツー エッジ ディスプレイを簡単に設定できるようにしました。

API の変更

  • ComponentActivity.onBackPressed() は非推奨になりました。代わりに、戻る操作を処理する API を使用してください。デベロッパーは、このメソッドをオーバーライドするのではなく、OnBackPressedDispatcher を使用する必要があります。(Ibce2fb/271596918
  • ComponentDialogComponentActivity に、コンテンツ ビューを設定する前にすべてのビューツリー オーナーを初期化するために使用される公開 API initViewTreeOwners() が追加されました。(Ibdce0b/261314581

バグの修正

  • Fragment が MenuHost を誤って無効にし、アクティビティ内の他のメニューで予期しない動作が発生する問題を修正しました。(I9404eb/244336571

その他の変更点

  • ActivityResultRegister は、Java ではなく Kotlin Random を使用します。(I4d98fb/272096025

バージョン 1.8.0-alpha02

2023 年 3 月 8 日

androidx.activity:activity:1.8.0-alpha02androidx.activity:activity-compose:1.8.0-alpha02androidx.activity:activity-ktx:1.8.0-alpha02 がリリースされました。内部ブランチから開発されました。

依存関係の更新

バージョン 1.8.0-alpha01

2023 年 2 月 8 日

androidx.activity:activity:1.8.0-alpha01androidx.activity:activity-compose:1.8.0-alpha01androidx.activity:activity-ktx:1.8.0-alpha01 がリリースされました。これは内部ブランチから構築されました。

新機能

  • OnBackPressedCallback クラスに、戻るジェスチャーが commit されたときの以前の handleOnBackPressed() コールバックに加えて、新しい予測型「戻る」進行状況コールバックが導入されました。

バージョン 1.7

バージョン 1.7.2

2023 年 5 月 24 日

androidx.activity:activity:1.7.2androidx.activity:activity-compose:1.7.2androidx.activity:activity-ktx:1.7.2 がリリースされました。バージョン 1.7.2 に含まれる commit については、こちらをご覧ください

バグの修正

  • report が呼び出される前に画面から離れたときに ReportDrawn がクラッシュする問題を修正しました。(Ic46f1b/260506820

バージョン 1.7.1

2023 年 4 月 19 日

androidx.activity:activity:1.7.1androidx.activity:activity-compose:1.7.1androidx.activity:activity-ktx:1.7.1 がリリースされました。バージョン 1.7.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • ActivityScenarioComponentActivity を使用する場合、ReportFullyDrawExecuter がリークしなくなりました。(Id2ff2b/277434271

バージョン 1.7.0

2023 年 3 月 22 日

androidx.activity:activity:1.7.0androidx.activity:activity-compose:1.7.0androidx.activity:activity-ktx:1.7.0 がリリースされました。バージョン 1.7.0 に含まれる commit については、こちらをご覧ください

1.6.0 以降の重要な変更

  • PickVisualMediaPickMultipleVisualMedia の写真選択ツールのアクティビティ コントラクトが更新され、MediaStore.ACTION_PICK_IMAGES を使用できない場合の追加のフォールバックが含まれるようになりました。これにより、OEM とシステムアプリ(Google Play 開発者サービスなど)は、フォールバック アクションを実装することで、幅広い Android デバイスと API レベルで、一貫した写真選択ツールのエクスペリエンスを提供できるようになります。写真選択ツールは、この代替手段が利用可能な場合はこれを使用します。利用できない場合は、Intent.ACTION_OPEN_DOCUMENT にフォールバックします。Intent.ACTION_OPEN_DOCUMENT は、引き続きすべての API 19 以降のデバイスをサポートします。
  • ComponentDialogSavedStateRegistryOwner を実装して独自の SavedStateRegistry にアクセスし、ViewTree に対し SavedStateRegistryOwner を設定するようになりました。ViewTree API を使って Window に LifecycleOwnerSavedStateRegistryOwner の両方をアタッチするという要件を満たしているため、ComponentDialog 内で Jetpack Compose を使用することが可能になりました。
  • IntentSenderRequest.Builder.setFlags() を使用して、1 つのフラグだけでなく、Intent で複数のフラグを設定できるようになりました。

Kotlin 変換

多くの Activity クラスが Kotlin に変換されました。変換されたクラスはすべて、以前のバージョンとのバイナリ互換性を維持します。ActivityResultRegistryOwnerOnBackPressedDispatcherOwner のクラスは、Kotlin で記述されたクラスに対するソース互換性のない変更があります。

次の表に、新しいバージョンのアクティビティの参照元コンバージョンを示します。

アクティビティ 1.5 アクティビティ 1.6
override fun getActivityResultRegistry() = activityResultRegistry override val activityResultRegistry = activityResultRegistry
override fun getOnBackPressedDispatcher() = onBackPressedDispatcher override val onBackPressedDispatcher = onBackPressedDispatcher

ContextAwareContextAwareHelperOnContextAvailableListenerIntentSenderRequestOnBackPressedDispatcher のクラスも Kotlin に変換されましたが、ソースの互換性は維持されています。

FullyDrawnReporter API

ComponentActivityFullyDrawnReporter インスタンスを提供するようになりました。このインスタンスを使用すると、インタラクションの準備が整ったときに複数のコンポーネントでレポートできます。ComponentActivity は、すべてのコンポーネントが完了するまで待機してから、reportFullyDrawn() を呼び出してくれます。この API はタイミング要件を自動的に処理するので、onDraw 呼び出しの一部として呼び出す必要はありません。

この API では、以下を有効にすることをおすすめします。

  • 起動完了時の Android ランタイムへのシグナル送信。マルチフレームの起動シーケンス中に実行されるすべてのコードが含まれ、バックグラウンド コンパイルで優先されるようにします。
  • Macrobenchmark と Play Vitals へのシグナル送信(アプリが起動指標で完全に描画されたと見なされ、パフォーマンスをトラッキングできるようにする必要がある場合)。

個々のコンポーザブルの FullyDrawnReporter を簡単に使用できるように、次の 3 つの Activity Compose API を追加しました。

  • ReportDrawn は、コンポーザブルで直ちにインタラクションが発生する準備が整っていることを示します。
  • ReportDrawnWhen: コンポーザブルでインタラクションの準備が整ったタイミングを示す述語(list.count > 0)を受け取ります。
  • ReportDrawnAfter: 完了時にインタラクションの準備が整ったことを示す停止中のメソッドを受け取ります。

依存関係の更新

バージョン 1.7.0-rc01

2023 年 3 月 8 日

androidx.activity:activity:1.7.0-rc01androidx.activity:activity-compose:1.7.0-rc01androidx.activity:activity-ktx:1.7.0-rc01 がリリースされました。バージョン 1.7.0-rc01 に含まれる commit については、こちらをご覧ください。

依存関係の更新

バージョン 1.7.0-beta02

2023 年 2 月 22 日

androidx.activity:activity:1.7.0-beta02androidx.activity:activity-compose:1.7.0-beta02androidx.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-beta01androidx.activity:activity-compose:1.7.0-beta01androidx.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
  • ContextAwareContextAwareHelperOnContextAvailableListenerIntentSenderRequestOnBackPressedDispatcher が Kotlin で記述されるようになりました。(I1a73eIada92aosp/2410754I18ac7b/257291701

バージョン 1.7.0-alpha04

2023 年 1 月 25 日

androidx.activity:activity:1.7.0-alpha04androidx.activity:activity-compose:1.7.0-alpha04androidx.activity:activity-ktx:1.7.0-alpha04 がリリースされました。バージョン 1.7.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • PickVisualMediaPickMultipleVisualMedia の 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-alpha03androidx.activity:activity-compose:1.7.0-alpha03androidx.activity:activity-ktx:1.7.0-alpha03 がリリースされました。バージョン 1.7.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • ComponentDialogSavedStateRegistryOwner を実装して独自の SavedStateRegistry にアクセスし、ViewTree に対し SavedStateRegistryOwner を設定するようになりました。ViewTree API を使って Window に LifecycleOwnerSavedStateRegistryOwner の両方をアタッチするという要件を満たしているため、ComponentDialog 内で Jetpack Compose を使用することが可能になりました。(Idca17I73468b/261162296

API の変更

  • reportFullyDrawn を呼び出す準備ができるとすぐにアクティビティをマークする ReportDrawn コンポーザブルを追加しました。(Ic5b14b/259687964

Kotlin 変換

  • ソースとバイナリの互換性を保持するにあたり、ActvitiyResultCallbackOnBackPressedCallback のクラスが両方とも Kotlin に変換されました。(Ifc5e5Ide1b0b/257291701

バージョン 1.7.0-alpha02

2022 年 10 月 24 日

androidx.activity:activity:1.7.0-alpha02androidx.activity:activity-compose:1.7.0-alpha02androidx.activity:activity-ktx:1.7.0-alpha02 がリリースされました。バージョン 1.7.0-alpha02 に含まれる commit については、こちらをご覧ください

バグの修正

  • Activity 1.6.1 以降: maxItems のデフォルト値を使用する場合に、Android R デバイスで PickMultipleVisualMedia Activity Result コントラクトが起動しない問題を修正しました。(Ie2776b/249182130

バージョン 1.7.0-alpha01

2022 年 10 月 5 日

androidx.activity:activity:1.7.0-alpha01androidx.activity:activity-compose:1.7.0-alpha01androidx.activity:activity-ktx:1.7.0-alpha01 がリリースされました。バージョン 1.7.0-alpha01 に含まれる commit については、こちらをご覧ください

FullyDrawnReporter API

ComponentActivityFullyDrawnReporter インスタンスを提供するようになりました。このインスタンスを使用すると、インタラクションの準備が整ったときに複数のコンポーネントでレポートできます。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.1androidx.activity:activity-compose:1.6.1androidx.activity:activity-ktx:1.6.1 がリリースされました。バージョン 1.6.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • maxItems のデフォルト値を使用する場合に、Android R デバイスで PickMultipleVisualMedia Activity Result コントラクトが起動しない問題を修正しました。(Ie2776b/249182130

バージョン 1.6.0

バージョン 1.6.0

2022 年 9 月 21 日

androidx.activity:activity:1.6.0androidx.activity:activity-compose:1.6.0androidx.activity:activity-ktx:1.6.0 がリリースされました。バージョン 1.6.0 に含まれる commit については、こちらをご覧ください

1.5.0 以降の重要な変更

  • ActivityResultContracts.PickVisualMediaActivityResultContracts.PickMultipleVisualMedia が追加されました。これにより、写真選択ツールを利用できる場合は MediaStore.ACTION_PICK_IMAGES を使用し、利用できない場合は Intent.ACTION_OPEN_DOCUMENT を使用するという、下位互換性のコントラクトが提供されます。
  • Android 13 の OnBackInvokedCallback を、ComponentActivityComponentDialog によって提供される OnBackPressedDispatchers に統合しました。これにより、OnBackPressedDispatcher 上に構築されたすべての API が、予測型「戻る」ジェスチャーを有効にするときに機能するようになります。

バージョン 1.6.0-rc02

2022 年 9 月 7 日

androidx.activity:activity:1.6.0-rc02androidx.activity:activity-compose:1.6.0-rc02androidx.activity:activity-ktx:1.6.0-rc02 がリリースされました。バージョン 1.6.0-rc02 に含まれる commit については、こちらをご覧ください

バグの修正

  • OnBackPressedDispatcherOnBackInvokedCallbackPRIORITY_OVERLAY ではなく PRIORITY_DEFAULT に登録するようになりました。(I3901f
  • ComponentActivity を拡張するクラスで、常に両方の onMultiWindowModeChanged() コールバックがディスパッチされるようになりました。(Ic4d85
  • launch の呼び出しで Exception がスローされ、コールバックが LifecycleOwner なしで登録された場合、ActivityResultRegistry から結果を ActivityResultCallback に返さないようにしました。(Ia7ff7b/238350794
  • ComponentActivity はメニュー呼び出しを適切にディスパッチするようになり、アクティビティ内でスーパー関数を呼び出す必要はなくなりました。(Ie33c5b/238057118

依存関係の更新

バージョン 1.6.0-rc01

2022 年 8 月 24 日

androidx.activity:activity:1.6.0-rc01androidx.activity:activity-compose:1.6.0-rc01androidx.activity:activity-ktx:1.6.0-rc01 がリリースされました。バージョン 1.6.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • バージョン 33 より前の SDK を使用している場合に OnBackPressedDispatcher を初期化しても ClassVerificationError が発生しなくなりました。(Ic32e1
  • ComponentActivityonPictureInPictureModeChanged() コールバックをオーバーライドするクラスで、常にコールバックがディスパッチされるようになりました。(Ib7fdb

バージョン 1.6.0-beta01

2022 年 8 月 10 日

androidx.activity:activity:1.6.0-beta01androidx.activity:activity-compose:1.6.0-beta01androidx.activity:activity-ktx:1.6.0-beta01 がリリースされました。バージョン 1.6.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • null を渡すと常にクラッシュが発生するため、ComponentActivity の非推奨の startActivityForResult メソッドと startIntentSenderForResult メソッドに @NonNull を付けました。(Id2a25b/231476082

バグの修正

  • Activity 1.5.1以降: launch の呼び出しで Exception がスローされ、コールバックが LifecycleOwner なしで登録された場合、ActivityResultRegistry から結果を ActivityResultCallback に返さないようにしました。(Ia7ff7b/238350794
  • Activity 1.5.1 以降: ComponentActivity はメニュー呼び出しを onPrepareOptionMenu()onCreateOptionsMenu()onOptionsItemSelected() のオーバーライドに適切にディスパッチするようになり、スーパー関数を呼び出す必要はなくなりました。(Ie33c5b/238057118

依存関係の更新

  • Activity 1.5.1 以降: Activity ライブラリは Lifecycle バージョン 2.5.1 に依存するようになりました。(If6697

バージョン 1.6.0-alpha05

2022 年 6 月 15 日

androidx.activity:activity:1.6.0-alpha05androidx.activity:activity-compose:1.6.0-alpha05androidx.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-alpha04androidx.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-alpha03androidx.activity:activity-compose:1.6.0-alpha03androidx.activity:activity-ktx:1.6.0-alpha03 がリリースされました。

  • 注: このバージョンは Android 13 デベロッパー ベータ版 1 SDK でのみコンパイルされます。

新機能

  • ActivityResultContracts.PickVisualMediaActivityResultContracts.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-alpha01androidx.activity:activity-compose:1.6.0-alpha01androidx.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.1androidx.activity:activity-compose:1.5.1androidx.activity:activity-ktx:1.5.1 がリリースされました。バージョン 1.5.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • launch() の呼び出しで Exception がスローされ、コールバックが LifecycleOwner なしで登録された場合、ActivityResultRegistry から結果を ActivityResultCallback に返さないようにしました。(Ia7ff7b/238350794

  • ComponentActivity はメニュー呼び出しを onPrepareOptionMenu()onCreateOptionsMenu()onOptionsItemSelected() のオーバーライドに適切にディスパッチするようになり、スーパー関数を呼び出す必要はなくなりました。(Ie33c5b/238057118

依存関係の更新

バージョン 1.5.0

バージョン 1.5.0

2022 年 6 月 29 日

androidx.activity:activity:1.5.0androidx.activity:activity-compose:1.5.0androidx.activity:activity-ktx:1.5.0 がリリースされました。バージョン 1.5.0 に含まれる commit については、こちらをご覧ください

1.4.0 以降の重要な変更

  • ComponentDialog - ComponentDialogDialog のサブクラスです。このサブクラスには、システムの [戻る] ボタンが押されてダイアログが表示されたときに呼び出される OnBackPressedDispatcher が含まれています。重要な点として、このサブクラスは ViewTreeOnBackPressedDispatcherOwner も設定し、これによりビューが一般的な方法で適切なディスパッチャ(それが ComponentActivityComponentDialog のどちらに存在する場合でも)を取得できます。
  • コールバック インターフェース - ComponentActivity に、Activity コールバックの代わりに使用できるモジュラー コールバック インターフェースのセットが実装されました。これらのインターフェースには、OnNewIntentProviderOnConfigurationChangedProviderOnTrimMemoryProviderOnPictureInPictureModeChangedProviderOnMultiWindowModeChangedProvider が含まれています。
  • CreationExtras の統合 - ComponentActivityLifecycle 2.5.0CreationExtras を介して、ステートレスの 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-rc01androidx.activity:activity-compose:1.5.0-rc01androidx.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-beta01androidx.activity:activity-compose:1.5.0-beta01androidx.activity:activity-ktx:1.5.0-beta01 がリリースされました。バージョン 1.5.0-beta01 に含まれる commit については、こちらをご覧ください

依存関係の更新

バージョン 1.5.0-alpha05

2022 年 4 月 6 日

androidx.activity:activity:1.5.0-alpha05androidx.activity:activity-compose:1.5.0-alpha05androidx.activity:activity-ktx:1.5.0-alpha05 がリリースされました。バージョン 1.5.0-alpha05 に含まれる commit については、こちらをご覧ください

バグの修正

  • ComponentActivityonPanelClosed() が super onPanelClosed() も呼び出すようになりました。これにより、onContextMenuClosed メソッドが呼び出されない問題を修正しました。(Ib6f77

バージョン 1.5.0-alpha04

2022 年 3 月 23 日

androidx.activity:activity:1.5.0-alpha04androidx.activity:activity-compose:1.5.0-alpha04androidx.activity:activity-ktx:1.5.0-alpha04 がリリースされました。バージョン 1.5.0-alpha04 に含まれる commit については、こちらをご覧ください

バグの修正

  • SavedStateViewFactory が、SavedStateRegistryOwner で初期化された場合でも CreationExtras を使用できるようになりました。エクストラが指定されている場合、初期化された引数は無視されます。(I6c43bb/224844583

バージョン 1.5.0-alpha03

2022 年 2 月 23 日

androidx.activity:activity:1.5.0-alpha03androidx.activity:activity-compose:1.5.0-alpha03androidx.activity:activity-ktx:1.5.0-alpha03 がリリースされました。バージョン 1.5.0-alpha03 に含まれる commit については、こちらをご覧ください

API の変更

  • CreationExtras をアクティビティの by viewModels() 関数に渡せるようになりました。(I6a3e6b/217600303

バージョン 1.5.0-alpha02

2022 年 2 月 9 日

androidx.activity:activity:1.5.0-alpha02androidx.activity:activity-compose:1.5.0-alpha02androidx.activity:activity-ktx:1.5.0-alpha02 がリリースされました。バージョン 1.5.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • ComponentActivityOnPictureInPictureModeChangedProvider インターフェースを実装し、すべてのコンポーネントがピクチャー イン ピクチャー モードの変更イベントを受信できるようになりました。(I9f567
  • ComponentActivityOnMultiWindowModeChangedProvider インターフェースを実装し、すべてのコンポーネントがマルチウィンドウ モードの変更イベントを受信できるようになりました。(I62d91

バージョン 1.5.0-alpha01

2022 年 1 月 26 日

androidx.activity:activity:1.5.0-alpha01androidx.activity:activity-compose:1.5.0-alpha01androidx.activity:activity-ktx:1.5.0-alpha01 がリリースされました。バージョン 1.5.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • ComponentActivity が、Lifecycle 2.5.0-alpha01 の一部として導入された ViewModel CreationExtras と統合されました。(Ie7e00b/207012584
  • Dialog のサブクラスである ComponentDialog を追加しました。このサブクラスには、ダイアログの表示中にシステムの [戻る] ボタンが押されたときに呼び出される OnBackPressedDispatcher が含まれています。重要な点として、このサブクラスは ViewTreeOnBackPressedDispatcherOwner も設定し、これによりビューが一般的な方法で適切なディスパッチャ(それが ComponentActivityComponentDialog のどちらに存在する場合でも)を取得することができます。(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() コールバックから、または ComponentActivityinit の一部として追加された LifecycleObserver へのコールバックから初めて ViewModel にアクセスしたときのクラッシュを修正しました。(Ife83f

バージョン 1.4.0

バージョン 1.4.0

2021 年 10 月 27 日

androidx.activity:activity:1.4.0androidx.activity:activity-compose:1.4.0androidx.activity:activity-ktx:1.4.0 がリリースされました。バージョン 1.4.0 に含まれる commit については、こちらをご覧ください

1.3.0 以降の重要な変更

  • AndroidX ComponentActivityMenuHost インターフェースが実装されました。これにより、すべてのコンポーネントが 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-rc01androidx.activity:activity-compose:1.4.0-rc01androidx.activity:activity-ktx:1.4.0-rc01 がリリースされました。バージョン 1.4.0-rc01 に含まれる commit については、こちらをご覧ください。

バグの修正

  • launch の呼び出しで Exception がスローされた場合に、ActivityResultRegistry から結果が ActivityResultCallback に返されないようになりました(If4f91b/200845664

バージョン 1.4.0-beta01

2021 年 9 月 29 日

androidx.activity:activity:1.4.0-beta01androidx.activity:activity-compose:1.4.0-beta01androidx.activity:activity-ktx:1.4.0-beta01 がリリースされました。バージョン 1.4.0-beta01 に含まれる commit については、こちらをご覧ください

API の変更

  • Java プログラミング言語のコードを使用する際に List<? extends Uri> の出力タイプを使用する原因となっていた ActivityResultContracts.OpenMultipleDocumentsActivityResultContracts.GetMultipleContents のタイプを修正しました。(If71de
  • 現在公開されている Companion オブジェクトを介して、ActivityResultContracts.StartActivityForResult クラス、ActivityResultContracts.StartIntentSenderForResult クラス、ActivityResultContracts.RequestMultiplePermissions クラス内のパブリック定数に Kotlin を使用してアクセスできるようになりました。(aosp/1832555

ドキュメントの更新情報

  • Activity Result API で処理されるようになった API のサポート終了メッセージ(startActivityForResultstartIntentSenderForResultonActivityResultrequestPermissionsonRequestPermissionsResult)が、すべて詳細に表示されるようになりました。(cce80f

バージョン 1.4.0-alpha02

2021 年 9 月 15 日

androidx.activity:activity:1.4.0-alpha02androidx.activity:activity-compose:1.4.0-alpha02androidx.activity:activity-ktx:1.4.0-alpha02 がリリースされました。バージョン 1.4.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • activity-compose アーティファクトに LaunchDuringComposition lint エラーを追加しました。これにより ActivityResultLauncherlaunch メソッドをコンポジションの一部として呼び出せなくなります(コンポジションは副作用なしにする必要があるため)。副作用を処理するための API を使用します。(7c2bbeb/191347220

API の変更

  • Kotlin で ActivityResultContract クラスが書き換えられ、Kotlin でカスタム コントラクトを書いているデベロッパーが、入力クラスと出力クラスに適切な null 可能性を定義できるようになりました。(I8a8f5
  • Kotlin で ActivityResultContracts クラスとそのコントラクトが書き換えられ、適切な null 可能性を確保できるようになりました。(I69802

バージョン 1.4.0-alpha01

2021 年 9 月 1 日

androidx.activity:activity:1.4.0-alpha01androidx.activity:activity-compose:1.4.0-alpha01androidx.activity:activity-ktx:1.4.0-alpha01 がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • AndroidX ComponentActivityMenuHost インターフェースが実装されました。これにより、すべてのコンポーネントが 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)
  }

動作の変更

  • 登録されていないか、登録解除された ActivityResultLauncherlaunch() を呼び出そうとすると、ActivityResultRegistryIllegalStateException をスローするようになりました。(Ida75db/192567522

外部からの協力

  • ActivityResult のドキュメントのタイプミスを修正してくださった dmitrilc 氏に感謝します。(#221

バージョン 1.3.1

バージョン 1.3.1

2021 年 8 月 4 日

androidx.activity:activity:1.3.1androidx.activity:activity-compose:1.3.1androidx.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.0androidx.activity:activity-compose:1.3.0androidx.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 のユーザーは、ActivitytrackPipAnimationHintView 拡張メソッドを使用し、ウィンドウに対する相対位置が変化するのに応じて、PictureInPictureParams をビューの新しい位置で自動的に再構築できます。

バージョン 1.3.0-rc02

2021 年 7 月 14 日

androidx.activity:activity:1.3.0-rc02androidx.activity:activity-compose:1.3.0-rc02androidx.activity:activity-ktx:1.3.0-rc02 がリリースされました。バージョン 1.3.0-rc02 に含まれる commit については、こちらをご覧ください

バグの修正

  • ActivityResultRegistry コールバックが適切に保存、復元されるようになりました。これにより、コールバックが savedState で複製されることはありません。(I97816b/191893160

バージョン 1.3.0-rc01

2021 年 7 月 1 日

androidx.activity:activity:1.3.0-rc01androidx.activity:activity-compose:1.3.0-rc01androidx.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-beta02androidx.activity:activity-compose:1.3.0-beta02androidx.activity:activity-ktx:1.3.0-beta02 がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください

Compose 1.0.0-beta09 に依存するように activity-compose を更新しました。androidx.compose.ui:ui-test-junit4activity-compose に対するコンパイル時の依存関係が追加されました。

バージョン 1.3.0-beta01

2021 年 6 月 2 日

androidx.activity:activity:1.3.0-beta01androidx.activity:activity-compose:1.3.0-beta01androidx.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-alpha08androidx.activity:activity-compose:1.3.0-alpha08androidx.activity:activity-ktx:1.3.0-alpha08 がリリースされました。バージョン 1.3.0-alpha08 に含まれる commit については、こちらをご覧ください

新機能

  • 新しい CaptureVideo ActivityResultContract は、指定された URI に動画が正常に保存されたかどうかを示すブール値を ActivityResultCallback に返します。非推奨となった TakeVideo コントラクトは、カメラアプリでサムネイル ビットマップを返すのは非常にまれであり、結果が有用でなくなるため、これによって置き換えられました。(Ie21f2b/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-alpha07androidx.activity:activity-compose:1.3.0-alpha07androidx.activity:activity-ktx:1.3.0-alpha07 がリリースされました。バージョン 1.3.0-alpha07 に含まれる commit については、こちらをご覧ください

バグの修正

  • 再コンポジションによってコントラクトが変更された場合でも、rememberLauncherForActivityResult が同じ ActivityResultLauncher インスタンスへの安定した参照を返すようになりました。(Id2d6d
  • 1.3.0 より新しい不安定なバージョンの Fragment を使用しても、1.3.0 の使用を促す誤判定の lint エラーがスローされなくなりました。(aosp/1670206b/184847092

バージョン 1.3.0-alpha06

2021 年 4 月 7 日

androidx.activity:activity:1.3.0-alpha06androidx.activity:activity-compose:1.3.0-alpha06androidx.activity:activity-ktx:1.3.0-alpha06 がリリースされました。バージョン 1.3.0-alpha06 に含まれる commit については、こちらをご覧ください

API の変更

  • registerForActivityResult() API の名前が rememberLauncherForActivityResult() に変更されました。これにより、返された ActivityResultLauncher が、ユーザーに代わって覚えている管理オブジェクトであることをわかりやすく示すことができます。返された ActivityResultLauncherunregister を呼び出そうとすると、エラーがスローされるようになりました。(I2bb6d
  • LocalOnBackPressedDispatcherOwner.currentLocalActivityResultRegistryOwner.current が、現在の合成中に使用可能かどうかを判断しやすくするための null 許容値を返すようになりました。BackHandlerrememberLauncherForActivityResult() などの API が必要な API で、基になるオーナーが見つからない場合、より詳細な説明エラーがスローされるようになりました。NavHost が、NavHost をプレビューしている場合など、OnBackPressedDispatcherOwner が見つからないときでも機能するようになりました。(I7d8b4

バグの修正

  • アクティビティが STOPPED になり、再度 STARTED に変化した際に、BackHandler が [戻る] を適切にインターセプトするようになり、LifecycleOwner によって他のコールバックが追加されるようになりました。(I71de6b/182284739
  • Unit 入力があるカスタム ActivityResultContractlaunch() メソッド拡張機能を使用しても、NullPointerException を引き起こさなくなりました(I76282b/183837954)。

バージョン 1.3.0-alpha05

2021 年 3 月 24 日

androidx.activity:activity:1.3.0-alpha05androidx.activity:activity-compose:1.3.0-alpha05androidx.activity:activity-ktx:1.3.0-alpha05 がリリースされました。バージョン 1.3.0-alpha05 に含まれる commit については、こちらをご覧ください

バグの修正

  • Activity 1.2.2 以降: Fragment 1.3.1 以降の使用時に誤作動を引き起こす InvalidFragmentVersionForActivityResult lint チェックの問題を修正しました。(I54da1b/182388985
  • Activity 1.2.2 以降: ComponentActivity で、別の Intent の追加要素として保持されていた ActivityResultContract から Intent を起動したときに、ClassNotFoundException が発生しないようになりました。(Ieff05b/182906230

依存関係の更新

バージョン 1.3.0-alpha04

2021 年 3 月 10 日

androidx.activity:activity:1.3.0-alpha04androidx.activity:activity-compose:1.3.0-alpha04androidx.activity:activity-ktx:1.3.0-alpha04 がリリースされました。バージョン 1.3.0-alpha04 に含まれる commit については、こちらをご覧ください

バグの修正

  • Activity 1.2.1 から: 以前に付与されていなかった権限だけでなく、リクエストされたすべての権限に対して、RequestMultiplePermissions が常に結果を返すようになりました。(I50bc3b/180884668
  • Activity 1.2.1 から: ActivityResultRegistry により、unregister() の後に register() を同じキーで再度実行しても、処理中の launch() リクエストが結果を返すようになりました。(I9ef34b/181267562
  • Activity Compose は、ランタイム クラスパスにテスト依存関係を追加しなくなりました。(Ifd8b3
  • 以前に設定した onBack ラムダが再コンポジション後も引き続き使用されていた BackHandler の問題を修正しました。(8eb5eb

バージョン 1.3.0-alpha03

2021 年 2 月 24 日

androidx.activity:activity:1.3.0-alpha03androidx.activity:activity-compose:1.3.0-alpha03androidx.activity:activity-ktx:1.3.0-alpha03 がリリースされました。バージョン 1.3.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • composable 内のアクティビティから結果を取得するためのコンポーズ可能な registerForActivityResult 関数を追加しました。(Ia7851b/172690553

API の変更

  • LocalOnBackPressedDispatcherOwnerCompositionLocalProvider で使用できる provides 関数が追加され、asProvidableCompositionLocal() API が置き換えられました。(I45d24

バージョン 1.3.0-alpha02

2021 年 2 月 10 日

androidx.activity:activity:1.3.0-alpha02androidx.activity:activity-compose:1.3.0-alpha02androidx.activity:activity-ktx:1.3.0-alpha02 がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください

バグの修正

  • Activity Compose 1.3.0-alpha01 で Compose 1.0.0-alpha12 の使用時に NoSuchMethodError: No static method setContent 例外が発生する問題を修正しました。すべての Compose ユーザーは 1.3.0-alpha02 以降に依存する必要があります。(b/179911234

API の変更

  • BackHandler API を使用すると、Composable がシステムの [戻る] ボタンをインターセプトできます。(I58ed5b/172154006

バージョン 1.3.0-alpha01

2021 年 2 月 10 日

androidx.activity:activity:1.3.0-alpha01androidx.activity:activity-compose:1.3.0-alpha01androidx.activity:activity-ktx:1.3.0-alpha01 がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください

新機能

  • 新しい activity-compose アーティファクトでは、androidx.activity 固有の API 用の Jetpack Compose 固有のヘルパーを利用できます。
    • ComponentActivity.setContentandroidx.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.4androidx.activity:activity-ktx:1.2.4 がリリースされました。バージョン 1.2.4 に含まれる commit については、こちらをご覧ください

バグの修正

  • Activity 1.3.0-rc02 以降: ActivityResultRegistry コールバックが適切に保存、復元されるようになりました。これにより、コールバックが savedState で複製されることはありません。(I97816b/191893160

バージョン 1.2.3

バージョン 1.2.3

2021 年 5 月 5 日

androidx.activity:activity:1.2.3androidx.activity:activity-ktx:1.2.3 がリリースされました。バージョン 1.2.3 に含まれる commit については、こちらをご覧ください

バグの修正

  • Unit 入力があるカスタム ActivityResultContractlaunch() メソッド拡張機能を使用しても、NullPointerException を引き起こさなくなりました(I76282b/183837954)。
  • Fragment の新しいバージョンのスナップショット、アルファ版、ベータ版、または RC 版ビルドを使用している場合に Fragment 1.3.0 の使用を要求する誤検出の lint エラーを修正しました。(f4a57eb/184847092

バージョン 1.2.2

バージョン 1.2.2

2021 年 3 月 24 日

androidx.activity:activity:1.2.2androidx.activity:activity-ktx:1.2.2 がリリースされました。バージョン 1.2.2 に含まれる commit については、こちらをご覧ください

バグの修正

  • Fragment 1.3.1 以降の使用時に誤作動を引き起こす InvalidFragmentVersionForActivityResult lint チェックの問題を修正しました。(I54da1b/182388985
  • ComponentActivity で、別の Intent の追加要素として保持されていた ActivityResultContract から Intent を起動したときに、ClassNotFoundException が発生しないようになりました。(Ieff05b/182906230

依存関係の更新

バージョン 1.2.1

バージョン 1.2.1

2021 年 3 月 10 日

androidx.activity:activity:1.2.1androidx.activity:activity-ktx:1.2.1 がリリースされました。バージョン 1.2.1 に含まれる commit については、こちらをご覧ください

バグの修正

  • RequestMultiplePermissions が、以前に付与されていなかった権限だけでなく、リクエストされたすべての権限に対して結果を返すようになりました。(I50bc3b/180884668
  • ActivityResultRegistry により、unregister() の後に register() を同じキーで再度実行しても、処理中の launch() リクエストが結果を返すようになりました。(I9ef34b/181267562

バージョン 1.2.0

バージョン 1.2.0

2021 年 2 月 10 日

androidx.activity:activity:1.2.0androidx.activity:activity-ktx:1.2.0 がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください

1.1.0 以降の主な変更

  • Activity Result API: ComponentActivityActivityResultRegistry が利用できるようになり、Activity または Fragment のメソッドをオーバーライドせずに startActivityForResult() + onActivityResult()requestPermissions() + onRequestPermissionsResult() の各フローを処理できるようになりました。ActivityResultContract によりタイプ セーフティーが向上し、これらのフローをテストするためのフックを提供するようになりました。更新されたアクティビティから結果を取得するをご覧ください。
  • ContextAware: ComponentActivityContextAware を実装し、ベースの Activity.onCreate() の前にコールバックを受け取る OnContextAvailableListener インスタンスを 1 つ以上追加できるようになりました。

    • 停止性 Kotlin 拡張機能 withContextAvailable() を使用すると、Context が利用可能になったときに、非停止性ブロックを実行して結果を返すことができます。
    • この API は、Fragment 1.3.0FragmentActivityFragmentManager の状態を復元するために使用します。FragmentActivity のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。
    • この API は、AppCompat 1.3.0-alpha02 以降で AppCompatActivity が使用します。AppCompatActivity のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。
  • ViewTree のサポート: Lifecycle 2.3.0SavedState 1.1.0 に追加された ViewTreeLifecycleOwner.get(View)ViewTreeViewModelStoreOwner.get(View)ViewTreeSavedStateRegistryOwner API に対するサポートを ComponentActivity に追加し、ComponentActivity に直接追加された View の LifecycleOwnerViewModelStoreOwnerSavedStateRegistryOwner として Activity を返すようになりました。

  • reportFullyDrawn() バックポート - すべての API レベルで機能するように reportFullyDrawn()Activity メソッドが ComponentActivity にバックポートされました。これにより、API 19 でのクラッシュが修正され、すべての API レベルでこのメソッドのトレースが追加されました。

バージョン 1.2.0-rc01

2020 年 12 月 16 日

androidx.activity:activity:1.2.0-rc01androidx.activity:activity-ktx:1.2.0-rc01 がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください

バグの修正

  • ActivityResultRegistry が保存された状態が常に正確に復元されるようになりました。(Idd56b
  • ComponentActivity.reportFullyDrawn に対するトレースを追加(Ic7632

外部からの協力

  • ComponentActivityreportFullyDrawn() をオーバーライドするようになったことで、すべての API レベルで呼び出し可能となり、API 19 のデバイスで適切なシステム権限を付与せずに呼び出した際にクラッシュする問題が修正されました。Simon Schiller 氏に感謝いたします。(b/163239764#103

バージョン 1.2.0-beta02

2020 年 12 月 2 日

androidx.activity:activity:1.2.0-beta02androidx.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-beta01androidx.activity:activity-ktx:1.2.0-beta01 がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください

バグの修正

  • ActivityResultRegistry は、リクエスト コード register() としての使用に割り当てられていない整数が見つかるまで、整数をランダムに生成するようになりました。これにより、リクエスト コードの増加によって発生する可能性のある整数オーバーフローを防ぐことできます。(b/168779518

  • ActivityResultLauncherunregister() を呼び出すと、Lifecycle オブザーバーが適切に削除されるようになりました。(b/165608393

動作の変更

  • Lifecycle がすでに STARTED に達している LifecycleOwnerregister() を呼び出そうとすると、ActivityResultRegistryIllegalStateException をスローするようになりました。(b/165435866

ドキュメントの更新

  • ContextAware ドキュメントが LifecycleOwner にリンクされています。Lifecycle コールバックは、作成イベントおよび破棄イベントに適した場所としてハイライト表示されています。(aosp/1414152

バージョン 1.2.0-alpha08

2020 年 8 月 19 日

androidx.activity:activity:1.2.0-alpha08androidx.activity:activity-ktx:1.2.0-alpha08 がリリースされました。バージョン 1.2.0-alpha08 に含まれる commit については、こちらをご覧ください

新機能

  • ComponentActivityContextAware を実装し、ベースの Activity.onCreate() の前にコールバックを受け取る OnContextAvailableListener インスタンスを 1 つ以上追加できるようになりました。(b/161390636
    • 停止性 Kotlin 拡張機能 withContextAvailable() を使用すると、Context が利用可能になったときに、非停止性ブロックを実行して結果を返すことができます。(I8290c
    • この API は、Fragment 1.3.0-alpha08FragmentActivityFragmentManager の状態を復元するために使用します。FragmentActivity のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。(I513da
    • この API は、AppCompat 1.3.0-alpha02AppCompatActivity が使用します。AppCompatActivity のサブクラスに追加されたリスナーは、そのリスナーの後で実行されます。(I513da

バグの修正

  • lint 27.1.0 以降を使用している場合に ActivityResultFragmentVersionDetector lint チェックで発生する不具合を修正しました。(b/162155191

バージョン 1.2.0-alpha07

2020 年 7 月 22 日

androidx.activity:activity:1.2.0-alpha07androidx.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 が発生する問題が解決されました。(I8f9e3b/161057605

バージョン 1.2.0-alpha06

2020 年 6 月 10 日

androidx.activity:activity:1.2.0-alpha06androidx.activity:activity-ktx:1.2.0-alpha06 がリリースされました。バージョン 1.2.0-alpha06 に含まれる commit については、こちらをご覧ください

新機能

  • Kotlin の ActivityResult クラスを分割して、requestCodeintent に直接アクセスできるようになりました。(b/157212935
  • ActivityResultLauncher で、ランチャーの登録に使用された ActivityResultContract を取得できるようになりました。(b/156875743

API の変更

  • 互換性を破る変更: ActivityResultRegistryinvoke() メソッドの名前を onLaunch() に変更しました。(b/157496491
  • 結果が返されない場合に、OpenMultipleDocuments コントラクトが登録済みのコールバックに null ではなく空のリストを返すようになりました。(b/157348014

バージョン 1.2.0-alpha05

2020 年 5 月 20 日

androidx.activity:activity:1.2.0-alpha05androidx.activity:activity-ktx:1.2.0-alpha05 がリリースされました。バージョン 1.2.0-alpha05 に含まれる commit については、こちらをご覧ください

新機能

API の変更

  • TakePicture コントラクトは、指定された Uri に画像を書き込む際にカメラアプリでサポートされることがほとんどなかったため、サムネイルの Bitmap ではなく、成功を示す boolean を返すようになりました。(b/154302879
  • ActivityResultLauncherinvoke() 拡張機能が削除され、launch() の明示的な使用により、非同期オペレーションであることがよりわかりやすく示されようになりました。ActivityResultLauncher<Void> および ActivityResultLauncher<Unit>androidx.activity.result パッケージに launch の Kotlin 拡張機能が追加されました。これにより、以前の invoke() 拡張機能の動作をそれぞれミラーリングしていた null または Unit を渡す必要がなくなりました。(aosp/1304674aosp/1304675
  • setFlagsMask()setFlagsValues()IntentSenderRequest.Builder メソッドが単一の setFlags() メソッドに統合されました。(aosp/1302111

バグの修正

  • LifecycleOwnerActivityResultCallback を登録するときに、状態が STARTED に達する前にコールバックがトリガーされる問題を修正しました。(aosp/1309744

動作の変更

  • ActivityResultRegistry は、0 ではなく 0xFFFF で始まるリクエスト コードを生成するようになりました。これにより、アクティビティでstartActivityForResult() または requestPermissions() を使用する際の重複が防止されます。(aosp/1302324

バージョン 1.2.0-alpha04

2020 年 4 月 29 日

androidx.activity:activity:1.2.0-alpha04androidx.activity:activity-ktx:1.2.0-alpha04 がリリースされました。バージョン 1.2.0-alpha04 に含まれる commit については、こちらをご覧ください

新機能

  • ActivityResult API に対して startIntentSenderForResult を呼び出すことができるコントラクトを追加しました。(b/153007517

API の変更

  • prepareCall() メソッドの名前が、ここの ComponentActivityFragment 1.3.0-alpha04 の両方で、registerForActivityResult() に変更されました。(aosp/1278717
  • GetContentsOpenDocumentsRequestPermissions コントラクトの名前がそれぞれ GetMultipleContentsOpenMultipleDocumentsRequestMultiplePermissions に変更されました。(aosp/1280161
  • ComponentActivityActivityResultRegisteryOwner インターフェースが実装されました。(aosp/1290888
  • ComponentActivitystartActivityForResult()/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-alpha03androidx.activity:activity-ktx:1.2.0-alpha03 がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください

新機能

  • TakeVideoPickContactGetContentGetContentsOpenDocumentOpenDocumentsOpenDocumentTreeCreateDocument のコントラクトを ActivityResultContracts が提供する事前ビルド済みのコントラクトのセットに追加しました。(aosp/1262482aosp/1266916aosp/1268960
  • Activity Result API で、オプションの ActivityOptionsCompat を使用して結果のアクティビティを起動できるようになりました。(b/151860054

API の変更

  • TakePicture コントラクトは、イメージを保存する場所を指定する Uri の入力を受け取るようになりました。入力を受け取らない以前のコントラクトの名前を TakePicturePreview に変更しました。(aosp/1262482
  • ActivityResultRegistryregisterActivityResultCallback() メソッドの名前を register() に変更しました。(aosp/1267621
  • ActivityResultLauncherdispose() メソッドの名前を unregister() に変更し、ActivityResultRegistryunregisterResultCallback() を削除しました。(aosp/1267621
  • ActivityResultContactcreateIntent() メソッドは、明示的なインテントを作成できるように、入力に加えて Context を受け取るようになりました。(aosp/1238800
  • ActivityResultContractgetSynchronousResult() をオーバーライドして、startActivityForResult を呼び出さずに結果を提供できるようになりました。これは、リクエストされた権限がすでに付与されている場合に、RequestPermission コントラクトと RequestPermissions コントラクトで「許可」ステータスを正しく提供するために使用されます。(b/151110799
  • これまで使用できた Dial コントラクトは、IntentstartActivityForResult() で使用されることを想定していないため、削除しました。(aosp/1266916
  • 機能の拡張を想定していない Activity Result API の多くが final になりました。これには getActivityResultRegistry()prepareCall() メソッド、invoke() 以外のすべての ActivityResultRegistry のメソッド、オプションの追加機能をサポートしていない複数のデフォルトのコントラクトが含まれます。(b/152439361

バグの修正

  • 構成の変更後にまだ再登録されていないコールバックに結果を提供しようとする際の ActivityResultRegistryNullPointerException を修正しました。ActivityResultRegistry は、こうした保留中の結果を保持し、コールバックが再登録されたときに提供するようになりました。(b/152137004

バージョン 1.2.0-alpha02

2020 年 3 月 18 日

androidx.activity:activity:1.2.0-alpha02androidx.activity:activity-ktx:1.2.0-alpha02 がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください

新機能

  • ActivityResultRegistry: ComponentActivityActivityResultRegistry が利用できるようになり、アクティビティまたはフラグメントのメソッドをオーバーライドせずに startActivityForResult() + onActivityResult()requestPermissions() + onRequestPermissionsResult() の各フローを処理できるようになりました。ActivityResultContract によりタイプ セーフティーが向上し、これらのフローをテストするためのフックを提供するようになりました。更新された アクティビティから結果を取得するをご覧ください。(b/125158199

バージョン 1.2.0-alpha01

2020 年 3 月 4 日

androidx.activity:activity:1.2.0-alpha01androidx.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-rc03androidx.activity:activity-ktx:1.1.0-rc03 がリリースされました。バージョン 1.1.0-rc03 に含まれる commit については、こちらをご覧ください

依存関係の変更

  • Activity が Lifecycle 2.2.0-rc03 と Lifecycle ViewModel SavedState 1.0.0-rc03 に依存するようになりました。

バージョン 1.1.0-rc02

2019 年 11 月 7 日

androidx.activity:activity:1.1.0-rc02androidx.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-rc01androidx.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-beta01androidx.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-alpha03androidx.activity:activity-ktx:1.1.0-alpha03 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • Activity が Core 1.1.0 安定版に依存するようになりました。

バグの修正

バージョン 1.1.0-alpha02

2019 年 8 月 7 日

androidx.activity:activity:1.1.0-alpha02androidx.activity:activity-ktx:1.1.0-alpha02 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • SavedStateViewModelFactory は、ComponentActivityby viewModels()ViewModelProvider コンストラクタ、または ViewModelProviders.of() を使用するときのデフォルト ファクトリになりました(b/135716331

バージョン 1.1.0-alpha01

2019 年 7 月 2 日

androidx.activity:activity:1.1.0-alpha01androidx.activity:activity-ktx:1.1.0-alpha01 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

新機能

  • activity が Lifecycle 2.2.0-alpha02 に依存するようになりました(aosp/1007817
  • activity-ktxlifecycle-runtime-ktx への依存関係が追加されました。activity-ktx または activity-ktx に依存するライブラリ(fragment-ktx など)を使用する際、明示的に依存関係に追加する必要がなくなりました(aosp/987162

バージョン 1.0.0

バージョン 1.0.0

2019 年 9 月 5 日

androidx.activity:activity:1.0.0androidx.activity:activity-ktx:1.0.0 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

1.0.0 の主な機能

  • ComponentActivity: ComponentActivity は、Fragment 1.1.0 では FragmentActivity の新しいベースクラスとして、さらに AppCompat 1.1.0 では拡張機能により AppCompatActivity の新しいベースクラスとして機能します。
  • activity-ktx: activity-ktx モジュールには、ViewModels にアクセスするための by viewModels Kotlin プロパティの拡張機能が含まれています。Fragment 1.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-rc01androidx.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-beta01androidx.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-alpha08androidx.activity:activity-ktx:1.0.0-alpha08 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

API の変更

  • 互換性を破る変更: すでに非推奨になっていた ComponentActivityaddOnBackPressedCallback メソッドと removeOnBackPressedCallback メソッドが削除されました(aosp/953857
  • OnBackPressedCallbacksetEnabled() メソッドと isEnabled() メソッドが最終版になりました(b/131416833
  • OnBackPressedCallbackremove() メソッドが最終版になりました(aosp/952720
  • OnBackPressedDispatcher にパブリック コンストラクタが追加され、テストなどのために独自のインスタンスを作成できるようになりました(aosp/953431
  • ComponentActivityonBackPressed()@MainThread として明示的にマークされるようになりました(aosp/952721

バグの修正

  • LifecycleOwner で追加された OnBackPressedCalbackhandleOnBackPressed() メソッド内から remove() を呼び出すときの ConcurrentModificationException が修正されました(b/131765095

バージョン 1.0.0-alpha07

2019 年 4 月 25 日

androidx.activity:activity:1.0.0-alpha07androidx.activity:activity-ktx:1.0.0-alpha07 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

API の変更

このリリースでは、onBackPressed() の処理が大幅に変更されています。詳細については、更新された「戻る」カスタム ナビゲーションに関するドキュメントをご覧ください。

  • OnBackPressedCallbackOnBackPressedDispatcher のメソッドは @MainThread としてマークされています(aosp/943813
  • handleOnBackPressed() メソッドが boolean を返さなくなりました。代わりに、OnBackPressedCallback が有効または無効にできる抽象クラスになりました。新しい isEnabled() メソッドは true を返す場合にのみ、handleOnBackPressed() を呼び出し、[戻る] ボタンを処理する必要がありますaosp/944518
  • OnBackPressedDispatcheraddCallback メソッドが Cancellable インスタンスを返さなくなりました。この機能を実現する remove() メソッドが OnBackPressedCallback に追加され、handleOnBackPressed()remove() を呼び出せるようになりました(aosp/944519)(aosp/946316
  • handleOnBackPressed() を実装し isEnabledremove() にアクセスできるラムダを受け取る、addCallback のレシーバ スコープ コールバックが activity-ktx に追加されました(aosp/944520

バージョン 1.0.0-alpha06

2019 年 4 月 3 日

androidx.activity:activity:1.0.0-alpha06androidx.activity:activity-ktx:1.0.0-alpha06 がリリースされました。このバージョンに含まれる commit については、こちらをご覧ください。

API の変更

  • ComponentActivity に、@LayoutRes int を受け取る 2 つ目のコンストラクタが追加されました。このコンストラクタは、AppCompatActivity クラスをアノテーションする以前の動作を @ContentView で置き換えます。この方法は、アプリとライブラリの両方のモジュールで機能します(b/128352521
  • getOnBackPressedDispatcher() を介して取得できる新しい OnBackPressedDispatcher を優先して、ComponentActivity の OnBackPressedCallback 関連 API が非推奨になりました(aosp/922523
  • 新しい OnBackPressedCallbackOnBackPressedDispatcher に追加するメソッドが Cancellable オブジェクトを返すようになり、OnBackPressedDispatcher への明示的な参照を必要とせずに、コールバックを削除できるようになりました(aosp/922523
  • LifecycleOwner に関連付けて OnBackPressedCallback を追加すると、Lifecycle の開始時と停止時に OnBackPressedCallback がそれぞれ追加、削除されるようになりました(aosp/922523

バージョン 1.0.0-alpha05

2019 年 3 月 13 日

androidx.activity:activity:1.0.0-alpha05androidx.activity:activity-ktx:1.0.0-alpha05 がリリースされました。このリリースに含まれる commit の完全なリストについては、こちらをご覧ください。

新機能

  • @ContentView アノテーション ルックアップがキャッシュされるようになりました(b/123709449

バージョン 1.0.0-alpha04

2019 年 1 月 30 日

androidx.activity:activity 1.0.0-alpha04androidx.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 では、既存の FragmentActivityAppCompatActivity の新しい基本クラスである ComponentActivity が導入されました。

新機能

  • addOnBackPressedCallback を介して OnBackPressedCallback を登録することにより、アクティビティでメソッドをオーバーライドしなくても onBackPressed() コールバックを受け取れるようになりました。
  • ComponentActivity から ViewModel を取得するための新しい by viewModels() Kotlin プロパティ デリゲートを追加しました。
  • 保留中の入力イベント(クリックなど)が onStop() でキャンセルされるようになりました。

API の変更

  • LifecycleOwnerViewModelStoreOwner の実装が FragmentActivity から ComponentActivity に移動されました。
  • onRetainCustomNonConfigurationInstance が非推奨になりました。構成の変更に影響されないことを要するオブジェクトを保存するには、ViewModel を使用してください。