如果某個應用程序運行着,那麼按home鍵的話就跳到該應用程序,否則,就跳到桌面。

home鍵簡單原理:在我們的應用的manifest.xml文件中指定home鍵可以調用的activity。

<intent-filter >
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>



  通過上面的設置在我們按下home鍵的時候,系統會調用所有的具有上面設置的activity,並將它顯示出列表。當然前提是沒有設置默認值。
當然我們要實現的功能絕不是這麼簡單。相對麻煩點的是在後面。
如何能夠動態地自己調整默認的home鍵對應的activity呢?我們需要實現的功能是:當進入我們自己的應用時,將home鍵回到的activity爲我們的應用中的某個activity,而當我們的應用退出後,按home鍵,返回的是系統原先默認設置的activity(一般是默認桌面)。
實現方法:
1、將自己應用中需要被設置爲home跳轉到的activity的android:enabled="false",同時按開始介紹的一樣設置category.Home,這樣就相當於描述它爲可以被home鍵啓用,但是初始狀態爲系統不可見狀態。
2、在程序開啓時將1中的activity的enable屬性設爲enable。

mPackageManager = getApplicationContext().getPackageManager();
     mPackageManager.setComponentEnabledSetting(new ComponentName("com",
      "com.local.LActivity"),
      PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
      PackageManager.DONT_KILL_APP);



3、在程序結束時將程序對應的enable高爲disable

mPackageManager.setComponentEnabledSetting(new ComponentName("com",
      "com.local.LActivity"),
      PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
      PackageManager.DONT_KILL_APP);



搞定,這樣當程序退出時將不會影響系統home鍵。

 

原文地址: http://www.apkbus.com/android-19595-1-1.html

 



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章