Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 電源管理專題之管理廣播接收器 Broadcast Receivers

Android 電源管理專題之管理廣播接收器 Broadcast Receivers

編輯:Android開發實例

最簡單的監測設備狀態變更的做法就是為每一個狀態的變化都創建一個對應的 BroadcastReceiver ,然後在 BroadcastReceiver 的實現代碼中,取得設備當前的狀態來調整應用程序的運行任務。

但是這樣做有一個缺點就是可能您的應用程序會過於頻繁的喚醒設備來處理狀態的變更,這往往不是您期待的結果。

一個更好的解決辦法就是在程序的運行過程中動態的啟用和禁用廣播事件接收器,這樣您就可以只啟用目前最關心的廣播事件接聽器,而禁用掉現在並不需要的事件接聽器。

動態切換和級聯事件接器

您可以使用 PackageManager 來管理 manifest 中聲明的廣播接收器,示例代碼展示了如何利用這一技術來啟用和禁用相應的廣播接收器。

ComponentName receiver = new ComponentName(context, myReceiver.class);

PackageManager pm = context.getPackageManager();

pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP)

通過使用這一技術,如果設備當前處在未聯網的狀態,那麼您的應用程序可以禁用除網絡事件接收器以外所有其他的廣播事件接聽器。相反,一旦您確定設備已經連接到了網絡,那麼就可以停止監聽網絡狀態變化的監聽器,然後簡單檢查一下是否能連接互聯網,如果能的話就可以執行應用程序的數據更新任務了。

同樣,您也可以使用該技術來延遲啟動一個需要較高帶寬的大網絡文件的下載,通過簡單注冊一個網絡連接狀態切換的事件監聽器,只有當設備切換到 wi-fi 狀態的時候才啟動文件的下載工作。

參考文摘:
http://developer.android.com/training/monitoring-device-state/manifest-receivers.html

 

轉自:http://blog.zhourunsheng.com/2011/12/android-%e7%94%b5%e6%ba%90%e7%ae%a1%e7%90%86%e4%b8%93%e9%a2%98%e4%b9%8b%e7%ae%a1%e7%90%86%e5%b9%bf%e6%92%ad%e6%8e%a5%e6%94%b6%e5%99%a8-broadcast-receivers/ | 潤物無聲

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved