2014年7月14日 星期一

[Android]點選兩次返回鍵離開/關閉程式 範例

分享給大家~
以下使用 @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》實現再按一次返回鍵退出應用程式

沒有留言 :

張貼留言