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>