This document written: 2013-12-04 .. 2023-09-06
マクドナルドの公式アプリの終了方法が、バックキーをダブルクリックさせる方式だったので、自分でも調べてサンプルを作ってみました。
しかし、Android 4.x では「アプリ履歴」の形に UI が変更されたためバックキーを連打するような使い方がなくなり、むしろダブルクリックしないと終了させないような UI の方が旧式化して違和感があるものになってきました。そのため、今後はお蔵入りになる可能性が高い手法です。が、とりあえず、何かの折に使いたくなった場合の備忘録として、ここにまとめておきます。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
onBackPressedDispatcher.addCallback(this, object: OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
if (supportFragmentManager.backStackEntryCount > 0) {
supportFragmentManager.popBackStack()
} else {
Snackbar.make(
findViewById(android.R.id.content),
"Are you sure to close?",
Snackbar.LENGTH_LONG
).setAction("close") { finish() }.show()
}
}
})
}
}
<Android>