-
Notifications
You must be signed in to change notification settings - Fork 1
/
back.java
47 lines (42 loc) · 1.43 KB
/
back.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*按两次回退键退出程序。
通过重写onKeyDown方法处理
*/
//解决方案1
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
isEixt = false;
}
};
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//如果isExit标记为false,提示用户再次按键
if (!isEixt) {
isEixt=true;
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_LONG).show();
//如果用户在2秒内没有再次按返回键,就发送消息标记用户为不退出状态
handler.sendEmptyMessageDelayed(0, 2000);
} else {
finish();
System.exit(0);
}
}
return false;
}
//解决方案2
private long mExitTime;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if ((System.currentTimeMillis() - mExitTime) < 2000) {
System.exit(0);
} else {
Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_LONG).show();
mExitTime = System.currentTimeMillis();
}
return true;
}
return super.onKeyDown(keyCode, event);
}