BACKボタンの2度押しを感知するには

ActivityでBACKボタンが2回押されたら終了するような実装はファイルマネージャーなどのアプリでよく見られます。

このやり方は簡単でActivityonBackPressedに次のようなコードを書きます。

    /** ボタンが1回押されたかどうかを判定する変数 */
    private boolean isBackPressedOnce = false;
    
    @Override
	public void onBackPressed()
	{
        if(isBackPressedOnce){
            super.onBackPressed();
            return;
        }
        
        isBackPressedOnce = true;
        Toast.makeText(this, "終了するにはもう一度押してください。",
                Toast.LENGTH_SHORT).show();
        
        /** 2秒間の猶予 */
        new Handler().postDelayed(new Runnable()
        {
            @Override
            public void run()
            {
                isBackPressedOnce = false;
            }
        }, 2000);
    }

1回BACKボタンを押すと "終了するにはもう一度押してください。" というトーストが表示され、2秒以内にもう一度押すと終了します。

押す間隔はここでは2秒にしました。一般的には2秒くらいがいいみたいです。

以上、BACKボタンの2度押しを感知する方法でした。

関連項目
プライバシーポリシー