Android 再按一次退出

有兩種方法:ide

  1).第一次點擊的時候標記一下狀態,提示再按一次退出,而後開始計時,若是超過3秒沒有再次按返回,一切狀態歸零,反之,若是3秒內再次按返回鍵則進行退出。spa

    boolean isExit = false;
    int time = 0;

    @Override
    public boolean back() {
        // TODO Auto-generated method stub
        if (!isExit) {
            isExit=true;
            final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                        time++;
                        if (time == 3) {
                            isExit = false;
                            time=0;
                            timer.cancel();
                        }                        
                        System.out.println(time+"");
                }
            }, 0,1000);
            showMsg("再按一次退出");
        } else if (isExit && time < 3) {
            finish();
        }
        return true;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK){
            return back();
        }
        return super.onKeyDown(keyCode, event);
    }

 

  2).第一次點擊的時候記下當前時間,第二次點擊的時候取當前時間和上次記錄的時間作差,若是小於3秒則退出,反之將這次時間賦給標記時間,提示再按一次退出。code

    long lastTime;
    @Override
    public boolean back() {
        long currTime=System.currentTimeMillis();
        if(currTime-lastTime>3000){
            showMsg("再按一次退出");
            lastTime=currTime;
        }else{
            finish();
        }
        return false;
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK){
            return back();
        }
        return super.onKeyDown(keyCode, event);
    }
相關文章
相關標籤/搜索