HOME鍵操作的事件監聽

(1)單擊/雙擊HOME鍵,系統會發送一個廣播:ACTION_CLOSE_SYSTEM_DIALOGS;
在接收廣播中的處理爲:String reason = intent.getStringExtra("reason");
     if (reason.equals("homekey")) {

                   // "home press"
               }

     if (reason.equals("recentapps")) {

                    // "home double click"
               }
ps:當屏幕超時進行鎖屏時;當用戶按下電源按鈕,長按或短按(不管有沒跳出話框),進行鎖屏時;android系統都會廣播此Action(ACTION_CLOSE_SYSTEM_DIALOGS)消息。

此廣播是在frameworks\base\services\java\com\android\server\am\ActivityManagerService.java裏發送的Intent.ACTION_CLOSE_SYSTEM_DIALOGS

(2)在android低版本的SDK中,還有另一種方式可以獲取HOME鍵的按下事件:

在activity中重寫方法onAttachedToWindow():

@Override
   public void onAttachedToWindow() {
             getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
             super.onAttachedToWindow();

   }

然後在onKeyDown()函數中根據入參keyCode判斷是否有HOME鍵的動作觸發。
(3)利用activity的onSaveInstance(Bundle outstate)方法,在界面暫時退出時,可將一些需要備份的數據保存到outstate中;下次再次啓動該activity時,從onCreate的入參中取備份的數據。


發佈了15 篇原創文章 · 獲贊 11 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章