android 的 back鍵 返回上一級Activity,當然最終會返回到我們的程序的上一級=>主界面,對于很多程序來說不太友好,那么就讓我們的程序友好一下吧
在我們程序的主Activity中 重寫一下 onKeyDown事件:
- @Override
- public boolean onKeyDown(int keyCode,KeyEvent event) {
- // 是否觸發按鍵為back鍵
- if (keyCode == KeyEvent.KEYCODE_BACK) {
- // 彈出 退出確認框
- this.setConfrimDialogListener(new DialogInterface.OnClickListener() {
- // 確定 按鈕單擊事件
- @Override
- public void onClick(DialogInterface dialog, int which) {
- removeDialog(BaseView.DIALOG_YES_NO_MESSAGE);
- // back鍵默認執行方法
- // BaseView.this.finish();
- // 結束當前的進程(我們的程序)===>真正意義上的退出
- android.os.Process.killProcess(android.os.Process.myPid());
- }
- });
- this.setConfrimDialogText(R.string.alert_dialog_exit_confirm);
- this.showDialog(BaseView.DIALOG_YES_NO_MESSAGE);
- /*
- * 下面這句話很重要,return true
- * 相當于j2se里事件對象的consume()方法,意思是系統不會繼續執行該事件,因為已經被消費掉了,O(∩_∩)O~
- * 可以看該事件的源碼說明:* @return boolean Return true if this event was consumed.
- */
- return true;
- } else// 如果不是back鍵正常響應
- return super.onKeyDown(int keyCode,event);
- }
【轉自:http://wylsx.javaeye.com/blog/511489】