gpt4 book ai didi

android - 如何防止系统杀死我的 'foreground' 服务?

转载 作者:行者123 更新时间:2023-11-29 19:16:51 26 4
gpt4 key购买 nike

我正在构建一个类似于 Runtastic/Endomondo/Strava 的应用程序,它需要一个获取 GPS 位置的服务,直到用户明确停止它。

我运行了 Runtastic 和我的应用程序来尝试一下。 Runtastic 运行良好。但是我的应用程序丢失了所有数据,尽管通知还在状态栏中。我认为服务会自行重启,或者 Android 终止了我的服务。

我在配备 2GB RAM 的 LG G3 上测试了该应用程序,我认为这足以运行 Runtastic 和我的应用程序。

所以,我的问题是¿保持服务在后台运行或避免系统终止服务的最佳方式是什么?我想效仿 Runtastic/Endomondo/Strava 的逻辑。这意味着,电池生命周期无关紧要。

  • 我已经尝试在方法 onStartCommand 上使用 START_STICKY 标志启动服务。

  • 我尝试使用startForeground 方法启动服务

  • 我已经尝试获取 WakeLock

按照文档 (https://developer.android.com/guide/topics/processes/process-lifecycle.html),我的服务应该是“一个可见的过程”。

这是我的服务代码的要点:https://gist.github.com/cpalosrejano/cc1ab73c4819c3e84234f2d619421b93

我应该在 Manifest.xml 中将服务声明为进程吗?

最佳答案

what is the best way to keep a service running in background, or avoid the system kill it?

你不知道。前台服务是您可以获得的最佳服务。

But my app, looses all data altought the notification was in the status bar yet

将您的数据保存到数据库、SharedPreferences、文件或服务器。进程不是持久性数据存储。

关于android - 如何防止系统杀死我的 'foreground' 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43230387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com