2010-11-06 40 views
0

我的Android應用程序出現問題。 我正在使用後臺服務(狀態欄上有通知)每小時執行一次音頻採樣。爲了執行這個示例,我每小時生成一個廣播事件,並且當我捕獲該事件時,錄音開始。在白天,當我使用手機時,我沒有任何問題。奇怪的行爲發生在夜間,當手機進入「空閒」狀態時:廣播事件不再被處理。從日誌文件中,我瞭解到事件是生成並放入隊列中的......當我再次使用手機時,所有這些事件都在同一時刻提出。 你對如何解決這個問題有什麼想法嗎?我如何強制手機繼續處理我的事件?我是否必須設置任何標誌變量以避免手機進入這種「空閒」狀態? 希望有人能幫助我!android後臺服務停止處理廣播事件

謝謝你提前! michela

回答

0

我正在使用一個後臺服務(通知狀態欄)每小時執行一次音頻採樣。

爲什麼不使用AlarmManager,所以你不佔用多少內存?用戶真的不喜歡永久服務。

奇怪的行爲發生在夜間,當它看起來像手機進入「空閒」狀態:廣播事件不再被處理。

當然。

你對如何解決這個問題有什麼想法嗎?

使用AlarmManagerWakefulIntentService。安排AlarmManager每小時調用一次您的應用程序(理想情況下通過setInexactRepeating())。請WakefulIntentService獲取您的示例。如果您遵循記錄的WakefulIntentService配方,設備將保持足夠長的時間讓您獲取樣品,然後再睡着。你的服務不會一直留在記憶中。您獲得了您的功能,並且用戶可以獲得更好的設備性能。

只使用一個WakeLock讓你的應用,不僅消耗了內存中所有的時間,但繼續運行所有的CPU時間。