我開發了一款用於GPS跟蹤的應用程序。它在前景中運行良好。它使用GPS /位置回調以及用於文本到語音,消息和心率監視器硬件的後臺服務。問題在於Android操作系統在後臺運行時偶爾關閉它。如果使用POWER按鈕關閉屏幕,它會保持正常運行。如果HOME按鈕用於關閉屏幕並運行其他應用程序,則Android有時會在幾分鐘後關閉應用程序,即使需要繼續工作。有沒有辦法讓應用程序運行isFinishing()/ onDestroy()或類似?正確捕獲BACK按鈕操作,給用戶一個取消選項。謝謝,克里斯。Android在後臺關閉應用程序,如何停止?
-2
A
回答
1
爲了避免這種情況你的應用程序應該啓動一個前臺服務(調用startForeground服務()),顯示非dismissable通知並獲得PowerManager.PARTIAL_WAKE_LOCK
它可以防止手機進入睡眠模式並阻止該系統可能會造成您的應用程序死機(100%無法避免),但這顯然會對電池消耗產生重大影響。
+1
「它可以防止手機進入睡眠模式」 - 不,它不會。 「WakeLock」可防止設備進入睡眠模式。前臺服務不會自動獲取「WakeLock」。 – CommonsWare
+1
好吧,我忘了喚醒鎖...編輯。但在幾個月前的一些測試中,它在wake_lock和wake_lock下都是一樣的,但我仍然保留它以防萬一。 –
相關問題
- 1. 在Xamarin Android應用程序關閉後,後臺服務會停止
- 2. 停止關閉Android應用程序
- 3. 如何在關閉應用程序後停止意圖服務
- 4. 在關閉android應用程序時停止線程?
- 5. 在關閉應用程序時:如何停止線程?
- 6. 爲什麼後臺服務在應用程序關閉時停止工作?
- 7. 防止Android應用程序被關閉/停止
- 8. 如何在WebSphere下停止應用程序的後臺線程
- 9. 當後臺應用程序停止BackgroundService
- 10. 如何停止音樂,如果在後臺應用程序
- 11. 如何在應用程序關閉時停止MediaPlayer的聲音?
- 12. 如何在關閉應用程序時停止音樂
- 13. 如何在關閉wpf應用程序時關閉所有後臺進程
- 14. 如何在關閉JFrame時在後臺運行應用程序?
- 15. 如何在應用程序啓動時停止後臺任務?
- 16. 如何在應用程序轉到後臺時停止updupatingLocation(ios6)
- 17. 強制關閉在Android應用程序的後臺服務
- 18. 如何在進入後臺時關閉iPhone應用程序?
- 19. 如何啓動控制檯應用程序並防止在最後關閉?
- 20. Qt應用程序停止後關閉托盤圖標
- 21. 如何關閉或停止我在Android中啓動的外部應用程序
- 22. 當應用程序關閉時,Android Studio音頻停止播放
- 23. Android Phonegap App - 退出時關閉並停止應用程序
- 24. 如何阻止C#控制檯應用程序自動關閉?
- 25. 如何停止Java應用程序的關閉
- 26. 停止後臺服務當應用程序轉到後臺
- 27. 如何在播放媒體時阻止Cordova應用程序在後臺停止
- 28. 讓Android應用程序在後臺運行,防止它停止/死亡
- 29. 如何關閉Android應用程序
- 30. 如何關閉Android服務中的前臺應用程序?
使用粘滯服務進行後臺更新。雖然自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