android中Activity实现再按一次退出
fmms
13年前
在这里,最主要的是覆写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