android中Activity实现再按一次退出
本文原创,转载请注明ITEYE原文地址:http://maosidiaoxian.iteye.com/blog/1403040 或本人博客地址:http://msdxblog.sinaapp.com/?p=316在这里,最主要的是覆写onKeyDown(int, KeyEvent)方法。
对于实现在一定时间内再按一次退出,思路可以如下:
编写一个辅助类,里面有成员变量boolean isWillExit,当它为true时,则再按一次返回键退出。第一次按返回键时,isWillExit设置为true,再编写一个Runnable实例,在指定时间后设置isWillExit为false。
详细看代码吧。代码如下:
以下代码在Activity中
Exit exit = new Exit();// ...@Overridepublic 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() {@Overridepublic 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;}}
页:
[1]