Android 監聽home鍵


 
在低版本 android 中,可以通過重寫 onKeyDown()方法,達到監聽 Home鍵,間接實現 Back 鍵功能。但是在 android 4.0 之后 Home 鍵的這個重寫方式失效。
 
那么在android4.0之后該如何監聽呢
首先,當用戶的操作使一個activity准備進入后台時, onUserLeaveHint方法會像activity的生命周期的一部分被調用。例如,當用戶按下 Home鍵,

Activity#onUserLeaveHint()將會被回調。但是當來電等系統自動切換activity自動占據前台,Activity#onUserLeaveHint()將不會被回調。

這個方法用起來存在一定的局限性,因為啟動另外一個Activity也會被調用

   @Override
    protected void onUserLeaveHint() {
        super.onUserLeaveHint();
        Log.i(TAG, "onUserLeaveHint");
        finish();
    }

  

另外一種方案是通過系統廣播

 final IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);

        context.registerReceiver(mHomeKeyReceiver, homeFilter);

動態注冊一個廣播可以帶上ACTION_CLOSE_SYSTEM_DIALOGS的Filter可以監聽系統點擊按鍵的廣播

在廣播接收中獲取bundle,在bundle中獲取reason值

String action = intent.getAction();
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
 
if(reason == "recentapps")//多任務
 
if(reason == "homekey")//home

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM