嗯,我有趣的問題。我有一個小工具,像提醒,它顯示了屏幕上最近的幾個項目。每個項目的時間,當它到來。我只需要顯示將來沒有通過的項目。由於定期更新至少可以每30分鐘完成一次,對我來說還不夠(我的項目有11.54,12.07等)。所以我只有1個選項=安排一項服務,它可以在任何我想要的時間間隔更新屏幕(例如每5分鐘)。智能小部件更新(不定期)
但是,這不是對我來說非常好,因爲我有2個要求,這是一點點一起戰鬥:
- 運行非常頻繁(< 5分鐘)
- 不要用太多的電池和其他資源
所以 - 有沒有可能像智能更新?我的意思是例如像這樣的算法:
a)當設備解鎖時,每隔1分鐘更新一次屏幕(=用戶正在用手機做某事) b)但設備在休眠時不更新(無用, t看到更新的結果)?
或者至少類似於「每5分鐘運行一次,但僅在上班時間的上午8:00至晚上8:00」?簡單的智能服務調度...
是的,當然,我現在正在執行這個權利;)我只是想知道,如果有「更簡單」的選項,那麼我自己做。那麼,另一個看起來很有前途的選擇是收聽SCREEN_ON和SCREEN_OFF事件 - 它應該是電池的絕佳選擇。但是,由於一些奇怪的原因,我的廣播接收機不能監聽這兩種類型的意圖。然後,我發現你的回覆此線程http://stackoverflow.com/questions/2575242/android-intent-action-screen-on-doesnt-work-as-a-receiver-intent-filter,並意識到,並不總是一切都是100%的記錄;) – qkx
@qkx:「那麼,另一個看起來很有前途的選擇是聽SCREEN_ON和SCREEN_OFF事件 - 它應該是絕對最佳的電池選擇。」 - 不是真的。畢竟,您不希望強制用戶關閉屏幕並更新列表,這意味着除了屏幕狀態更改之外,您還需要另一個觸發器*。使用具有非'_WAKEUP'警報的'AlarmManager'還可以避免在設備處於睡眠狀態時進行不必要的更新,同時儘可能以最有效的方式處理屏幕快照時的更新。 – CommonsWare
我的意思是,然後我會有一個服務運行在普通itnerval(alarmmanager)例如5分鐘,當屏幕關閉時,我將取消該警報,因此即使屏幕關閉,服務也不會運行,甚至1次。屏幕開啓後,我將重新創建警報並安排服務以相同間隔運行,依此類推。但它沒關係,它不起作用,所以我會實現我自己的算法...問題關閉;) – qkx