“再按一次返回键退出程序”实现
问自己一个为什么?
每个app中都有退出这个响应,android是通过按“返回键”退出程序;在用户使用app时不免会出现一些“误操作”按了一下返回键,退出了程序,这样的用户体验是不友好的。
所以,就有必要对返回键进行判断,判断用户是否要退出。一般我们的判断条件是2s内按下返回键俩次就退出程序。
思路导析
在第一次按下“back”键时记录下当前系统时间存储在变量“exittime”;在第二次按下时,将当前系统时间与“exittime”比较,如果小于2秒就退出程序,反之,将当前时间存储于“exittime”。
代码实现
private long exittime = 0;
@Override
public void onBackPressed() {
if (System.currentTimeMillis() - exittime < 2000){
super.onBackPressed();
}else {
Mytools.ShowToast(MainActivity.this,getString(R.string.string_exit));
exittime = System.currentTimeMillis();
}
}
}
代码扩展实现
加入了判断抽屉的状态
private long exittime = 0;
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
if (System.currentTimeMillis() - exittime < 2000){
super.onBackPressed();
}else {
Mytools.ShowToast(MainActivity.this,getString(R.string.string_exit));
exittime = System.currentTimeMillis();
}
}
}