我們有一個應用程序,每隔10
秒處理一個任務。這應該或多或少精確,這意味着1
或2
秒的差異是OK
,但不是20
秒或更多的差距。Android:每10秒完成一次任務(正好)
無論應用程序在前臺還是後臺打開,這都應該可以工作。
我們通過AlarmManager
執行此操作,但它無法正常工作。如果智能手機沒有插入並且在後臺運行,則執行中存在差距。
隨着Android 4.3.
,我們從時間間隔(約30秒)時,與Android 5.x
我們也減少了差距,但約5
或10
分鐘長的空白!
我認爲必須有一種方法來實現這一點,鬧鐘也是可能的,而且是確切的。
有關該應用的更多信息:它在一個服務中工作,並實現一個廣播接收器。這意味着如果我擦掉應用程序或重新啓動該應用程序,服務將重新啓動。這工作正常。唯一的問題是10
第二項任務。
任何提示?鬧鐘是如何實施的?哪個調用API?
我嘗試過不同的方式,直到現在沒有成功。
感謝 漢斯
這是一個相當模糊的,不完整的答案。 –
嗨。我用AlarmManager嘗試它。這工作,我的Tast每10秒鐘被調用一次。但過了一段時間,它不需要5或10分鐘!這發生在應用程序運行幾分鐘或幾小時後,並且每小時發生一次(或多或少)。我不知道爲什麼。 – Hans
很高興聽到它爲你工作。我瞭解你目前的問題。這通常會發生,因爲缺乏資源或其他原因可能會停止服務。因此,爲了每次都運行它,您還需要註冊其他廣播接收器。例如,您需要在獲得wake_up權限後註冊Wake_up。因此,無論何時用戶開始使用手機,您的廣播接收器都會被調用,並且您可以檢查您的所需服務是否正在運行。如果不啓動該服務。您甚至可以使用sharedprefs來存儲上次調用toast的服務的值。 –