1、Android 雙擊返回鍵退出程序
思路:用戶按下返回鍵時設定一個定時器來監控是否2秒內實現了退出,如果用戶沒有接着按返回鍵,則清除第一次按返回鍵的效果,使程序還原到第一次按下返回鍵之前的狀態。定時器是每次用戶按下返回鍵才去創建。
代碼如下:
/** * 菜單、返回鍵響應 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode == KeyEvent.KEYCODE_BACK) { exitBy2Click(); //調用雙擊退出函數 } return false; } /** * 雙擊退出函數 */ private static Boolean isExit = false; private void exitBy2Click() { Timer tExit = null; if (isExit == false) { isExit = true; // 准備退出 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); tExit = new Timer(); tExit.schedule(new TimerTask() { @Override public void run() { isExit = false; // 取消退出 } }, 2000); // 如果2秒鍾內沒有按下返回鍵,則啟動定時器取消掉剛才執行的任務 } else { finish(); System.exit(0); } }
其中onKeyDown()函數可以在菜單欄Source->Override/Implement Methods里找到,雙擊即可自動添加到代碼中。
2、監聽返回鍵,彈出一個退出對話框
Android 如何監聽返回鍵點擊事件,並創建一個退出對話框,
防止自己寫的應用程序不小心點擊退出鍵而直接退出。
源碼如下:
/**監聽對話框里面的button點擊事件*/ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { switch (which) { case AlertDialog.BUTTON_POSITIVE:// "確認"按鈕退出程序 finish(); break; case AlertDialog.BUTTON_NEGATIVE:// "取消"第二個按鈕取消對話框 break; default: break; } } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ) { // // 創建退出對話框 // AlertDialog isExit = new AlertDialog.Builder(this).create(); // // 設置對話框標題 // isExit.setTitle("系統提示"); // // 設置對話框消息 // isExit.setMessage("確定要退出嗎"); // // 添加選擇按鈕並注冊監聽 // isExit.setPositiveButton("確定",null); // isExit.setNegativeButton("取消", listener); // // 顯示對話框 // isExit.show(); new AlertDialog.Builder(this) .setTitle("系統提示") .setMessage("確定要退出嗎") .setPositiveButton("確定", listener) .setNegativeButton("取消", listener) .show(); } return false; }