我已經創建了一個電池小部件,它使用服務來聽取電池更換。 但是正因爲如此,在創建widget之前,它必須等待電池狀態發生變化才能顯示數據。Android電池小部件初始化
我的問題是,是否有簡單的方法詢問電池是否一次性發生。
我可能會吠叫錯誤的樹,但我曾嘗試在AppWidgetProvider類中使用BroadcastReceiver來獲取電池的初始狀態,但無法弄清楚如何停止,以便服務可以從那裏。
有什麼想法?
乾杯
我已經創建了一個電池小部件,它使用服務來聽取電池更換。 但是正因爲如此,在創建widget之前,它必須等待電池狀態發生變化才能顯示數據。Android電池小部件初始化
我的問題是,是否有簡單的方法詢問電池是否一次性發生。
我可能會吠叫錯誤的樹,但我曾嘗試在AppWidgetProvider類中使用BroadcastReceiver來獲取電池的初始狀態,但無法弄清楚如何停止,以便服務可以從那裏。
有什麼想法?
乾杯
我已經創建了一個使用服務偵聽電池更換的電池部件。
請注意,在所有的時間保持服務通常不是一個好主意。用戶不喜歡它,並會通過設置中的任務殺手或管理服務屏幕將其關閉。 Android也不喜歡它,並最終會停止它。
由於電池電量不會非常頻繁地變化,因此請考慮切換到使用AlarmManager
的型號,並每隔幾分鐘檢查電池電量。
但是因爲這個原因,創建widget時必須等待電池狀態發生改變才能顯示數據。
號當您註冊ACTION_BATTERY_CHANGED
,您BroadcastReceiver
立即與該動作的最後發送廣播調用,因爲ACTION_BATTERY_CHANGED
是一個棘手的廣播。
您可以在this sample project中看到。電池信息立即顯示在活動中 - 這是唯一可能的,因爲立即調用onReceive()
方法。
我的問題是,是否有簡單的方法詢問電池是否一次性發生。
這也是可能的。請致電registerReceiver()
,電話ACTION_BATTERY_CHANGED
,但電話號碼爲null
BroadcastReceiver
。您將爲該行動返回最後發送的廣播Intent
。例如,這將是從AlarmManager
事件處理它的方式。
是當第一次創建它我是諱莫如深使用永久服務,但是當我看到許多最成功的電池部件的也使用了永久的服務,我的擔心得到緩解。系統會在什麼情況下將其關閉?我想像資源何時變得有限。我一直在運行這個小部件大約一週,並且它沒有失去與電池同步。謝謝,我將研究使用AlarmManager – FullySearchable