Android 再按一次退出程序
Android App "再按一次退出程序"的实现方式,直接上代码。
第一种(Handler+标志位)
默认退出标识为false,第一次按下返回键后置为true,1.5s之内再次按下返回键退出程序。
private boolean isExit; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExit = false; } }; }
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ if(!isExit){ isExit = true; handler.sendEmptyMessageDelayed(0, 1500); Toast.makeText(this, "再按一次退出程序", 1500).show(); return false; }else{ finish(); } } return super.onKeyDown(keyCode, event); }
第二种(时间差)
记录前后两次按下返回键的时间间隔,如果小于1.5s,退出程序。
private long exitTimeMillis = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ long currentTime = System.currentTimeMillis(); if(currentTime-exitTimeMillis==0||currentTime-exitTimeMillis>1500){ exitTimeMillis = System.currentTimeMillis(); Toast.makeText(this, "再按一次退出程序", 1500).show(); return false; }else{ finish(); } } return super.onKeyDown(keyCode, event); }