以下使用 @Override onKeyDown 這個事件來做,
一開始 先設定一個flag 用來判斷是否連續按了兩次
接著判斷按下的是哪個按鍵,再來
在 onKeyDown 的 Method 中 使用 Thread 來做 該flag的變更
程式碼如下
//判斷離開的flag,設定成全域變數 private boolean is_exit = false; //點兩次返回鍵離開程式 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { boolean returnValue = false; if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount()==0 && is_exit == false){ Toast.makeText(getBaseContext(), getText(R.string.str_notice_ExitonDoubleKeyDown), Toast.LENGTH_SHORT).show(); is_exit = true; //一開始 先設定 返回的 flag = true ,若使用者兩秒內沒有動作,則將該 flag 恢復為 false new Thread(new Runnable() { public void run() { try { Thread.sleep(2000); is_exit = false; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }).start(); returnValue = true; }else{ returnValue = super.onKeyDown(keyCode, event); } return returnValue; }
還有更多的變化可以使用,比如說變更 Toast 的樣式等...
有賴自己的發揮囉
其他方式:
《Android》實現再按一次返回鍵退出應用程式
沒有留言 :
張貼留言