思路:实现的思路其实很简单:定义一个isExit=false,写一个函数,
函数里面实现的功能是:当isExit是false的时候,让他变为true,
用Toast显示“再按一次退出程序”。用一个handler延迟两秒后才进行执行:
让他变回false为了下次实现同样的功能。否则就是true,
然后就是OnKeyDown函数的实现,点击时调用上面的函数
具体实现如下:
定义一个isExit=false;
/* * 设置isExit来判断是否退出 * * */ private boolean isExit=false;
写一个函数exit()供KEYDOWN调用
/* * 判断isExit的状态,判断是否退出 * * */ private void exit() { if (!isExit) { isExit=true; Toast.makeText(MainActivity.this,"再按一次退出程序",Toast.LENGTH_SHORT).show(); handler.sendEmptyMessageDelayed(0,2000); } else { finish(); System.exit(0); } }
写一个Handler,延迟两秒后把isExit的状态调回来,给下一次使用
/* * 延长两秒,如果没有继续按下退出键的话,isExit依旧是false的状态 * * */ Handler handler=new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit=false; } };
最后一个OnKeyDown方法的实现,仅仅需要调用exit这个函数便可
/* * 监控用户按下的按钮状态 * * */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode==KeyEvent.KEYCODE_BACK) { exit(); return false; } return super.onKeyDown(keyCode, event); }
OK,按两次退出的功能到此就全部结束了;