//重写onKeyUp(),实现连续两次点击方可退出当前应用
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
//如果侧拉菜单打开点击back键只是关闭侧拉菜单
if(mDrawerlayout.isDrawerOpen(Gravity.LEFT)){
closeDrawerLayout();
return true;
}
if (keyCode == KeyEvent.KEYCODE_BACK && flag) {
Toast.makeText(MainActivity.this, "再点击一次,退出当前应用", Toast.LENGTH_SHORT).show();
flag = false;
//发送延迟消息
handler.sendEmptyMessageDelayed(WHAT_RESET_BACK, 2000);
return true;
}
return super.onKeyUp(keyCode, event);
}
//为了避免出现内存的泄漏,需要在onDestroy()中,移除所有未被执行的消息
@Override
protected void onDestroy() {
super.onDestroy();
if (handler != null) {
handler.removeCallbacksAndMessages(null);
handler = null;
}
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
//如果侧拉菜单打开点击back键只是关闭侧拉菜单
if(mDrawerlayout.isDrawerOpen(Gravity.LEFT)){
closeDrawerLayout();
return true;
}
if (keyCode == KeyEvent.KEYCODE_BACK && flag) {
Toast.makeText(MainActivity.this, "再点击一次,退出当前应用", Toast.LENGTH_SHORT).show();
flag = false;
//发送延迟消息
handler.sendEmptyMessageDelayed(WHAT_RESET_BACK, 2000);
return true;
}
return super.onKeyUp(keyCode, event);
}
//为了避免出现内存的泄漏,需要在onDestroy()中,移除所有未被执行的消息
@Override
protected void onDestroy() {
super.onDestroy();
if (handler != null) {
handler.removeCallbacksAndMessages(null);
handler = null;
}
}