`
貌似掉线
  • 浏览: 256986 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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();
	// ...
	@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;
	}
}
2
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics