android中Activity实现再按一次退出

fmms 12年前

在这里,最主要的是覆写onKeyDown(int, KeyEvent)方法。
对于实现在一定时间内再按一次退出,思路可以如下:
编写一个辅助类,里面有成员变量boolean isWillExit,当它为true时,则再按一次返回键退出。第一次按返回键时,isWillExit设置为true,再编写一个Runnable实例,在指定时间后设置isWillExit为false。

详细看代码吧。代码如下:
以下代码在Activity中

 Exit exit = new Exit();   // ...   @Override   public boolean onKeyDown(int keyCode, KeyEvent event) {    if (keyCode == KeyEvent.KEYCODE_BACK) {     pressAgainExit();     return true;    }    return super.onKeyDown(keyCode, event);   }     /**    * 再按一次退出程序。    */   private void pressAgainExit() {    if (exit.isExit()) {     finish();    } else {     Toast.makeText(getApplicationContext(), "再按一次退出程序",       1000).show();     exit.doExitInOneSecond();    }   }
下面是一个辅助类。
class Exit {   private boolean isExit = false;   private Runnable task = new Runnable() {    @Override    public void run() {     isExit = false;    }   };     public void doExitInOneSecond() {    isExit = true;    HandlerThread thread = new HandlerThread("doTask");    thread.start();    new Handler(thread.getLooper()).postDelayed(task, 1000);   }      public boolean isExit() {    return isExit;   }     public void setExit(boolean isExit) {    this.isExit = isExit;   }  }
本文原创,转载请注明ITEYE原文地址:http://maosidiaoxian.iteye.com/blog/1403040 或本人博客地址:http://msdxblog.sinaapp.com/?p=316