没什么好说的,直接看代码:
private static final long BACK_WAIT_TIME = 2000;
private long mTouchTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
if((System.currentTimeMillis() - mTouchTime) >= BACK_WAIT_TIME){
mTouchTime = System.currentTimeMillis();
ToastUtils.showToast("再按一次退出");
}else{
mTouchTime = 0;
MainActivity.this.finish();
//退出时如需kill进程
System.exit(0);
//or
//android.os.Process.killProcess(android.os.Process.myPid());
}
return true;
}
return super.onKeyDown(keyCode, event);
}
finish是Activity的类,仅仅针对Activity 。
System.exit(0),System.exit(1)的区别:参数0和1代表退出的状态,0表示正常退出,非0表示异常退出,即使不传0来执行也可以退出,该参数只是通知操作系统该程序是否是正常退出。