前言
这两天,做了两个月的项目结束了,在这里把涉及到的大大小小的知识点给总结、积累一下,方便以后使用。
正文
boolean isExit=false;
private static final int Msg_KeyExit = 0;
/**
* 退出程序
*/
private void exit() {
if (!isExit) { // 限定时间内第一次点击
isExit = true;
Toast toast = Toast.makeText(getApplicationContext(),
getResources().getString(R.string.exit_toast),
Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Message msg = new Message();
msg.what = Msg_KeyExit;
mHandler.sendMessageDelayed(msg, 2000);
} else {
finish();//这里写关闭所有Activity、退出进程的行为
}
}
Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case msg_KeyExit:
isExit = false;
break;
default:
break;
}
super.handleMessage(msg);
}
};
另外,我之前是有另一种做法:
//记录上次点击的时间
long clickTime;
private void exit() {
if ((System.currentTimeMillis() - clickTime) > 2000) {
Toast.makeText(getApplicationContext(), "再按一次后退键退出程序",
Toast.LENGTH_SHORT).show();
clickTime = System.currentTimeMillis();
} else {
finish();
android.os.Process
.killProcess(android.os.Process.myPid());
System.exit(0);
}
}
这种方法代码较少,写得比较随意。
新人开贴,希望批评指正。