0

我正在研究與Voip & IM(聊天應用程序)相關的應用程序。直到Android操作系統5.0它工作良好,也沒有來自客戶端的問題。但是從android OS 5.1.1開始,我們面臨着一些問題。從android操作系統自動停止的服務5.1.1

問題:

  • 如果應用程序是在前景,如果設備進入睡眠模式,這是工作好。
  • 如果應用程序在背景並且如果設備在後進入睡眠模式10分鐘所有服務都自動停止

測試:

  • 爲了測試我創建了一個定時器來打印日誌,每1分鐘。所以當我關閉應用程序(意味着如果應用程序在後臺)

  • 直到android OS 5.0日誌不斷打印。

  • android OS 5.1.1起先進入睡眠模式後,10分鐘後日志不打印。計時器任務正在停止

同樣的問題我也面臨我的申請。

做了一些R & D我知道關於打盹模式和應用程序優化。它是否與停止在後臺自動運行的服務有關。

如果是,任何人都可以請讓我知道如何解決這個問題。

+0

你使用foregroundService嗎? –

+0

打盹模式首次引入棉花糖並在牛軋糖中重新定義。如果您的服務在Android版本5.1中停止。1那麼你可能有其他問題。只是檢查,你是否使用'START_STICKY'爲你服務? – tahsinRupam

+0

@tahsinRupam是的,我使用了START_STICKY。直到5.0它工作良好。我們從5.1.1開始面臨這個問題,並且在進入睡眠模式後,測試應用程序計時器任務也不起作用。 – user2384424

回答

1

這是Google爲防止不必要的電池使用而做的新事情。 對於新版本,後臺服務受限制以延長電池壽命。 android服務與前臺運行的應用程序幾乎相同。所以即使應用程序沒有運行,其服務可能正在運行並使用內存和電池。

如果您必須使用任何種類的後臺程序,請嘗試使用Job Scheduler,這可能對您有用。

Job Scheduler根據我們在實現中提供的約束對任務進行分組並執行後臺任務。 這有一個限制,它的最低API支持21

爲了支持較低的版本,你可以使用Firebase JobDispatcher從API支持9

我個人比較喜歡Firebase JobDispatcher

link幫助您瞭解更多關於調度程序及其實現。