首页 > 代码库 > Android 再按一次退出

Android 再按一次退出

有两种方法:

  1).第一次点击的时候标记一下状态,提示再按一次退出,然后开始计时,如果超过3秒没有再次按返回,一切状态归零,反之,如果3秒内再次按返回键则进行退出。

    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秒则退出,反之将此次时间赋给标记时间,提示再按一次退出。

    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);    }

 

Android 再按一次退出