Android中Activity实现再按一次退出
Android中Activity实现再按一次退出
在这里,最主要的是覆写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;
- }
- }
评论暂时关闭