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);
    }
相关文章
相关标签/搜索