1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Android36対応 予測型「戻る」の対応

Posted at

概要

Android公式からの引用です。

予測型「戻る」ジェスチャーをサポートするには、下位互換性がある OnBackPressedCallback AppCompat 1.6.0-alpha05(AndroidX)以上の API、または新しい OnBackInvokedCallback プラットフォーム API を使用して、アプリを更新する必要があります。ほとんどのアプリでは、下位互換性のある AndroidX API を使用します。

この更新は、「戻る」ナビゲーションを正しくインターセプトするための移行パスを提供するもので、KeyEvent.KEYCODE_BACK からの「戻る」インターセプトや、onBackPressed メソッドを含むクラス(Activity、Dialog など)を、新しいシステムの「戻る」API で置き換えるためのものです。

実践

onBackPressedを使っていた場合に

OnBackPressed または KeyEvent.KEYCODE_BACKを使って戻る処理をしていた場合に、OnBackPressedDispatcher に移行しましょうということです。

     // バックキー押下時の制御
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
            getOnBackInvokedDispatcher().registerOnBackInvokedCallback(
                OnBackInvokedDispatcher.PRIORITY_DEFAULT,
                this::onBackPressed
            );
        }

Android16以降ならOnBackInvokedCallbackをカスタムして、onBackInvokedDispatcherを登録し、
今まで使用していた、onBackPressedの処理を渡すためにthis::onBackPressedを引数に渡します。

これで予測型「戻る」の対応をしつつ、今までどうりの動きになるようです。

詳しくは公式を見てください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?