0

我需要收集GPS數據,將其保存到數據庫,然後每分鐘發送到後端。 我只是想確保打盹模式不會把事情搞砸。Android Doze:它會分別影響整個應用程序還是其流程?

  1. 讓我們假設我啓動我的前臺服務並在那裏執行onLocationChanged回調。

    我是否必須在前臺服務中完成所有這些工作(收集/存儲/發送)才能確保打盹將允許使用GPS /互聯網?

  2. 如果我想在其他地方存儲/發送數據,例如在BroadcastReceiver中,我怎麼能確定我的BroadcastReceiver已準備好處理數據並且不會睡着?

  3. 有一個在Android的男,這使得受打盹模式前臺服務中的錯誤: https://stackoverflow.com/a/37869501/3210556

    一個可能woakaround是在一個單獨的進程啓動前臺服務。

    假設應用程序中有前臺服務,究竟什麼不受打瞌睡影響?

    • 前臺服務本身?
    • 與前臺服務相關的進程?
    • 整個應用程序?

謝謝。

回答

1

如果你的手機進入Doze所有的東西都進入睡眠狀態(GPS,警報,互聯網等)並在某些時候被推遲到維護窗口(取決於用戶的Android版本)。

如果您的應用程序需要在特定時間執行某些操作,那麼您可以請求white list您的應用程序。您可以查看白名單here的有效用例,這聽起來像您的案例可能是有效的

相關問題