-2

我開發了一款用於GPS跟蹤的應用程序。它在前景中運行良好。它使用GPS /位置回調以及用於文本到語音,消息和心率監視器硬件的後臺服務。問題在於Android操作系統在後臺運行時偶爾關閉它。如果使用POWER按鈕關閉屏幕,它會保持正常運行。如果HOME按鈕用於關閉屏幕並運行其他應用程序,則Android有時會在幾分鐘後關閉應用程序,即使需要繼續工作。有沒有辦法讓應用程序運行isFinishing()/ onDestroy()或類似?正確捕獲BACK按鈕操作,給用戶一個取消選項。謝謝,克里斯。Android在後臺關閉應用程序,如何停止?

+1

使用粘滯服務進行後臺更新。雖然自Android M以來,您必須查看Android Doze行爲更改,這裏是[Android N](https://developer.android.com/about/versions/nougat/android-7.0-changes.html),[Android O ](https://developer.android.com/about/versions/oreo/background-location-limits.html)。 – ADM

回答

1

爲了避免這種情況你的應用程序應該啓動一個前臺服務(調用startForeground服務()),顯示非dismissable通知並獲得PowerManager.PARTIAL_WAKE_LOCK

它可以防止手機進入睡眠模式並阻止該系統可能會造成您的應用程序死機(100%無法避免),但這顯然會對電池消耗產生重大影響。

+1

「它可以防止手機進入睡眠模式」 - 不,它不會。 「WakeLock」可防止設備進入睡眠模式。前臺服務不會自動獲取「WakeLock」。 – CommonsWare

+1

好吧,我忘了喚醒鎖...編輯。但在幾個月前的一些測試中,它在wake_lock和wake_lock下都是一樣的,但我仍然保留它以防萬一。 –

相關問題