我已經創建了一個服務(S),它承載一個ContentObserver(C)。 C跟蹤一些數據並記錄對數據庫所做的更改(D)。睡眠服務與內容服務器
S還有一個定時器,它將D的內容按定時間隔轉儲到文件中。
我有我的服務在我的手機上運行,一段時間(一兩個小時左右)似乎都很好。然後突然停止記錄對數據所做的更改並停止將其轉儲到文件。 我試着改變數據(在C上挑起onChange)並在手機中瀏覽以保持設備清醒,但沒有發生任何事 - 服務stil不活動。 S仍在運行,當我連接到我的筆記本電腦時,我在日誌中看到沒有錯誤。
我的猜測是該服務正在休眠(不會獲得CPU片)。我已經讀了一些關於喚醒鎖,但我不想強迫手機一直醒着。 ()。 另一種方法是創建一個重複的警報,每T分鐘執行一次C的工作(輪詢)。 我更喜歡ContentObservers的想法,因爲用戶可以更改(尤其是刪除)更新之間的數據。通過ContentObserver,我將獲得所有更改,而不僅僅是定時間隔內的快照。
關於如何在常規基礎上喚醒我的服務的任何想法?
問候 弗雷德裏克
嗨埃裏克。該應用程序已經是服務(如我的問題所述)。我的問題是,這項服務睡着了,因此停止監測數據。我試圖用相應的接收器註冊一個鬧鐘。接收者然後以意圖呼叫該服務。有沒有其他解決方法呢? – Frederik
@Frederik Di你得到的回答是「我的問題是這個服務睡着了,因此停止監視數據,我試圖用相應的接收器註冊一個警報,然後接收者打算用意圖調用服務。在這附近?「。 – dira
@ becomputer06不,我沒有得到任何答案。正如你所建議的那樣,我的解決方法是創建一個警報。自從我問這個問題已經有一段時間了,我希望更新的API能夠適應這種需求。 – Frederik