我们看到许多界面友好的应用,在退出程序这一步也做得很人性化,比如按两下返回键退出程序,第一次按了返回键的时候,提示“再按一次返回键就退出程序”,其实在自己的程序里面,也可以这样做。
private long exitTime = 0;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){
if((System.currentTimeMillis()-exitTime) > 2000){
Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
在MainActivity中加上以上代码:onKeyDown响应按键消息,keyCode是按键码,event是按键消息,封装了本次按键的动作;exitTime保存上一次按返回键的时间(long),如果这次按返回键的时间距上次的时间小于2S(long的2000),就退出,finish()是将activity完成,System.exit(0)是退出程序,主要要保证所有的activity都退出了,才调用exit,不然会有后台程序还在继续运行。