- Android入門基礎:從這裡開始
- Android分享操作
- Android多媒體
- Android圖像與動畫
- Android網絡連接與雲服務
- Android聯繫人與位置信息
- Android可穿戴應用
- Android TV應用
- Android企業級應用
- Android交互設計
- Android界面設計
- Android用戶輸入
- Android後臺任務
- Android性能優化
- Android安全與隱私
- Android測試程序
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
根據需要操作Broadcast接受者
編寫:kesenhoo - 原文:http://developer.android.com/training/monitoring-device-state/manifest-receivers.html
監測設備狀態變化最簡單的方法,是為你所要監聽的每一個狀態創建一個BroadcastReceiver,並在Manifest文件中註冊它們。之後就可以在每一個BroadcastReceiver中,根據當前設備的狀態調整一些計劃任務。
上述方法的副作用是:一旦你的接收器收到了廣播,應用就會喚醒設備。喚醒的頻率可能會遠高於需要的頻率
更好的方法是在程序運行時開啟或者關閉BroadcastReceiver。這樣的話,你就可以讓這些接收器僅在需要的時候被激活。
切換是否開啟接收器以提高效率
我們可以使用PackageManager來切換任何一個在Mainfest裡面定義好的組件的開啟狀態。通過下面的方法可以開啟或者關閉任何一個BroadcastReceiver:
ComponentName receiver = new ComponentName(context, myReceiver.class);
PackageManager pm = context.getPackageManager();
pm.setComponentEnabledSetting(receiver,
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP)
使用這種技術,如果我們確定網絡連接已經斷開,那麼可以在這個時候關閉除了監聽網絡狀態變化的接收器之外的其它所有接收器。
相反的,一旦重新建立網絡連接,我們可以停止監聽網絡連接的改變,而僅僅在執行需要聯網的操作之前判斷當前網絡是否可以用。
同樣地,你可以使用上面的技術來暫緩一個需要更高帶寬的下載任務。這僅需要啟用一個監聽網絡連接變化的BroadcastReceiver,並在連接到Wi-Fi時,初始化下載任務。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论