private DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() {
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
dialog.dismiss();
exitApp();
return true;
} else {
return false;
}
}
};
updateDialog.setOnKeyListener(keylistener);
双击back键退出app的逻辑:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN ) {
backPressedTime ++;
if(backPressedTime == 1)
{
BFEventBus.getInstance().post(Event.make(BFEventBus.GROUP_APP,"onLeaveApp",null));
// TMToast.makeText(this,"再按一次返回键退出", Toast.LENGTH_SHORT).show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
backPressedTime = 0;
}
},2000);
}if(backPressedTime >= 2)
{
TMMainTabActivity.this.finish();
}
return false;
}
return super.dispatchKeyEvent(event);
}