Android 实现按两次返回键退出程序


 

// 是否退出程序

private static Boolean isExit = false;

// 定时触发器

private static Timer tExit = null;

 

 

 

	public boolean onKeyUp(int keyCode, KeyEvent event) {



		if (keyCode == KeyEvent.KEYCODE_BACK) {

			if (isExit == false) {

				isExit = true;

				if (tExit != null) {

					tExit.cancel(); // 将原任务从队列中移除

				}

				// 重新实例一个定时器

				tExit = new Timer();

				TimerTask task = new TimerTask() {

					@Override

					public void run() {

						isExit = false;

					}

				};

				Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();

				// 延时两秒触发task任务

				tExit.schedule(task, 2000);

			} else {

				finish();

				System.exit(0);

			}

			return true;

		}

		return super.onKeyUp(keyCode, event);

	}


原理很简单:定义一个TimerTask定时器和一个是否退出程序的标识isExit,第一次按返回键,赋值isExit标识为true,开启定时器TimerTask 任务,两秒钟后赋值isExit标识为false,所以用户在这两秒中内再按一次返回键,则退出程序。否则定时器TimerTask任务执行,标志为false。原理就是这么简单~

 


 

你可能感兴趣的:(android)