《android按两次返回键提出》由会员分享,可在线阅读,更多相关《android按两次返回键提出(3页珍藏版)》请在金锄头文库上搜索。
1、Android 实现点击两次返回键退出第一步,定义一个变量,用于标识是否退出 boolean isExit; 第二步,重写 Activity 中 onKeyDown 方法 Override public boolean onKeyDown(int keyCode, KeyEvent event) if (keyCode = KeyEvent.KEYCODE_BACK) exit(); return false; else return super.onKeyDown(keyCode, event); 第三步,写一个退出方法,名称就是 onKeyDown 中的exit() public void
2、 exit() if (!isExit) isExit = true; Toast.makeText(getApplicationContext(), 再按一次退出程序, Toast.LENGTH_SHORT).show(); mHandler.sendEmptyMessageDelayed(0, 2000); else Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); startActivity(intent); System.exit(0); 第四步,根据 ex
3、it()方法中的的消息,写一个Handler Handler mHandler = new Handler() Override public void handleMessage(Message msg) / TODO Auto-generated method stub super.handleMessage(msg); isExit = false; ; 实现的基本原理就是,当按下 BACK 键时,会被onKeyDown 捕获,判断是 BACK 键,则执行 exit 方法。在 exit 方法中,会首先判断 isExit 的值,如果为false 的话,则置为 true,同时会弹出提示,并在
4、2000毫秒(2秒)后发出一个消息,在 Handler 中将此值还原成 false。如果在发送消息间隔的2秒内,再次按了 BACK 键,则再次执行 exit 方法,此时 isExit 的值已为 true,则会执行退出的方法。更简便的方法:/按两次返回键退出Override public boolean onKeyDown(int keyCode, KeyEvent event) if (keyCode = KeyEvent.KEYCODE_BACK) if(!isExit) isExit = true; Toast.makeText(getApplicationContext(), R.string.RepeatBackKeyToExit, Toast.LENGTH_SHORT).show(); new Handler().postDelayed(new Runnable() public void run() isExit = false; , 2000); return false; return super.onKeyDown(keyCode, event);