android点击两次退出应用

android应用开发过程中经常会遇到点击两次退出应用的场景,再android给出的定时机制中,有两种方式能够实现:1)TimerTask通过Timer来进行调度;2)利用ScheduledExecutorService来进行处理。本文主要利用TimerTask来实现,这也是最常见的实现方式。

private static Boolean isQuit = false; 
private Timer timer = new Timer();
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (!isQuit) {
                isQuit = true;
                Toast.makeText(getBaseContext(),
                        R.string.back_more_quit,Toast.LENGTH_LONG).show();
                TimerTask task = null;
                task = new TimerTask() {
                    @Override
                    public void run() {
                        isQuit = false;
                    }
                };
                timer.schedule(task, 2000);//其中task
            } else {
                finish();//结束当前Activity
                System.exit(0);//退出应用
            }
        }
        return false;
 }

当然Timer以及ScheduledExecutorService的应用绝不仅限单次定时任务,还能实现不间断重复任务,比如常见的banner轮播就可以用这两种方式来实现,感兴趣可以研究研究。