Androidをダブルクリックして戻るキーを押して終了

1392 ワード

Androidダブルクリック終了プログラムは開発でよく用いられ,戻りキー動作を傍受することで対応する動作をトリガする.
具体的な考え方:
Activityではボタン動作(onKeyDown,onKeyUp)を傍受し,2回のクリック時の時間差でユーザが終了ボタンを連続的にクリックしたか否かを判断し,対応する操作を実行する.
onKeyUp
//              
private long firstTime=0;

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    switch (keyCode){
        case KeyEvent.KEYCODE_BACK:
            long secondTime=System.currentTimeMillis();
            if(secondTime-firstTime>2000){
                Toast.makeText(MainActivity.this,"        --->onKeyUp",Toast.LENGTH_SHORT).show();
                firstTime=secondTime;
                return true;
            }else{
                System.exit(0);
            }
            break;
    }
    return super.onKeyUp(keyCode, event);
}

onKeyDown
//              
private long firstTime=0;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN){
        if (System.currentTimeMillis()-firstTime>2000){
            Toast.makeText(MainActivity.this,"        --->onKeyDown",Toast.LENGTH_SHORT).show();
            firstTime=System.currentTimeMillis();
        }else{
            finish();
            System.exit(0);
        }
        return true;
    }
    return super.onKeyDown(keyCode, event);
}