* @see android.app.Activity#dispatchKeyEvent(android.view.KeyEvent)
*/
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
if (event.getAction() == KeyEvent.ACTION_DOWN && event.getRepeatCount() == 0) {
this.exitApp();
}
return true;
}
return super.dispatchKeyEvent(event);
}
/** 退出App程序
* @param mActivity
*/
private void exitApp( ) {
// 判断2次点击事件时间
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(mActivity, "再按一次退出程序", Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
}
}
----------------------------------------------------------------------------------------------------------------------------
以下是弹框样式退出
@Override
public void onBackPressed() {
String exit_hint = getString(R.string.exit_app_hint);
showExitQueryDialog(this, exit_hint);
}
private void showExitQueryDialog(Context c, String msg) {
final Dialog dialog = new Dialog(c, R.style.DialogTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_query_dialog);
TextView msgView = (TextView) dialog.findViewById(R.id.message);
msgView.setText(msg);
TextView btnDlgOk = (TextView) dialog.findViewById(R.id.dlg_ok);
TextView btnDlgCancel = (TextView) dialog.findViewById(R.id.dlg_cancel);
// dialog.setOnCancelListener();
btnDlgOk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
exitApplication();
}
});
btnDlgCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}