Android点击两次返回退出应用

在一些app中,一般都是主页面都会有一个连续点击两次返回键就能够退出,也是防止返回键误触导致直接退出了应用。示例没有复杂的activity管理,点击两次后直接finish就完成了。

思路

直接判断用户两次按键的时间差是否在一个预期值之内,是则退出,否则应该出现一些提示来提醒用户。

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
public class MainActivity extends BaseActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

//记录用户首次点击返回键的时间
private long mExitFirstTime = 0;
//双击间隔
private long mExitIntervalMs = 2000;

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
switch (keyCode){
case KeyEvent.KEYCODE_BACK:
long secondTime = System.currentTimeMillis();
if(secondTime - mExitFirstTime > mExitIntervalMs){
mExitFirstTime = secondTime;
Toast.makeText(MainActivity.this, R.string.exit_tip, Toast.LENGTH_SHORT)
.show();
return true; //消费掉该事件
}else{
finish();
}
break;
}
return super.onKeyUp(keyCode, event);
}
}

重写onKeyDown()和onBackPressed()方法都能捕获Back的点击事件,

坚持技术分享,您的支持将鼓励我继续创作!