2011-12-30 125 views
1

我正在寫一個Android服務,每天下午5點檢查一個網站。如果符合某些條件,則會發出通知,否則不會發生任何事情。沒有喚醒的Android AlarmManager服務

起初我試圖將它作爲一個後臺服務來實現,它會啓動一個睡眠時間爲毫秒數的線程,直到下一個下午5點,然後執行檢查並在需要時提出通知,然後返回睡眠狀態再次。 這工作,如果我接近下午5時,當服務開始,但沒有其他的,我已經學會了谷歌搜索後,Android可以隨時殺死一個服務,所以我想這不是推薦的解決方案。

我發現的建議似乎都指向了AlarmManager,這也是我在實現上述解決方案之前首先看到的,但是它有一個缺點。如果我使用RTC作爲類型,那麼在用戶開始使用手機之前不會執行檢查,我希望即使閒置也可以完成檢查。但是,我不想使用RTC_WAKEUP,因爲我不希望屏幕打開,除非我認爲應該提出通知。

我想它應該是可行的,因爲它正是任何電子郵件應用程序所做的。如果電子郵件服務多久檢查一次服務器是否有新消息,則屏幕不會每分鐘顯示一次。

RTC_WAKEUP是否確實打開了屏幕?如果是的話,是否還有另一個用於實現上述場景的首選技術?

回答

2

但是,我不想使用RTC_WAKEUP,因爲我不想讓屏幕打開,除非我斷定應該引發通知。

RTC_WAKEUP沒有打開屏幕。

RTC_WAKEUP是否確實打開了屏幕?

不,在這裏,它只是「喚醒」CPU。