😇
android onBackPressed deprecated
Android API 33 で onBackPressed() の呼び出し、オーバーライドが非推奨になった時の対処方法
基本は OnBackPressedDispatcher をかますだけ
override fun onBackPressed() の処理を ComponentActivity.getOnBackPressedDispatcher().addCallback に移動
呼び出しは getOnBackPressedDispatcher().onBackPressed() に変更
親の呼び出しは finish() に変更するればOK
before
override fun onCreate(savedInstanceState: Bundle?) {
..
button.setOnClickListener {
onBackPressed()
}
}
override fun onBackPressed() {
if (isHoge) {
hoge()
} else {
super.onBackPressed()
}
}
after
override fun onCreate(savedInstanceState: Bundle?) {
..
button.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback(this) {
if (isHoge) {
hoge()
} else {
finish()
}
}
}
「戻る」ジェスチャー ナビゲーションをサポートのため変更になる模様
Discussion