Androidダブルクリック戻りキー終了機能の実現

889 ワード

private boolean appExit=false;
public Handler mHandler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        if(msg.what==0){
            appExit=false;
        }
    }
};

@Override
 public void onBackPressed() {
    if(appExit){
        finish();
    }else{
        appExit=true;
        Toast.makeText(this,"      ",2000).show();
//      
        mHandler.sendEmptyMessageDelayed(0,2000);
    }
}
@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if ((System.currentTimeMillis() - exitTime) > 2000) {
                ToastUtil.showToast(this, R.string.hint_back_up);
                exitTime = System.currentTimeMillis();
            } else {
                finish();
            }
        }
        return true;
    }