操作需求的廣播接收器
監控設備狀態變化的最簡單的方法是創建一個註冊的BroadcastReceiver
爲你監視每個州和每個應用程序清單。然後,在這些接收器,您只需根據當前設備狀態的重新安排您的經常性的報警。
這種方法的一個副作用是,您的應用程序將喚醒器件,這些接收器被觸發潛在的機會大大多於需要的時間。
更好的方法是在運行時禁用或啓用的廣播接收器。通過這種方式,你可以使用中聲明所觸發的系統事件,只在必要時表現爲被動式報警接收器。
切換和串級狀態更改接收器,以提高效率
使用可以使用的套裝軟體
的啓用狀態切換在清單中定義的任何組件,包括兩者廣播接收機,您希望啓用或禁用如下面的代碼片段所示:
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。