我的应用程序的主要目标是,当按下按钮时:
- 从传感器收集数据
- 在数据库中存储数据
- 定期重复(每 X 秒)
我想让它在后台完成,如果 Main Activity
被销毁,后台进程仍然在运行。因此,如果您删除该 Activity ,我希望它仍在运行。
我现在正在做的是使用一个带有 Intent Service
的 AlarmManager
来设置数据的定期记录,但是每当我销毁 Activity
,因为它们是相关的,所以我的应用程序崩溃了。
我知道运行后台进程有不同的方式,但没有一种适合我:
Service
:依赖于MainThread,所以如果MainActivity被销毁, 崩溃Intent Service
:目前正在使用的,但就目前而言 与AlarmManager相关,即与MainActivity相关,当它是 毁坏、崩溃。AsyncTask
:这个的问题在于它是 应该在后台完成一项任务并且它完成了,但是我 真正想要的是定期执行,直到用户说停止。所以 这不是一次性的事情。
有没有其他方法可以有后台服务? 前面提到的任何内容都可以用于我的目的吗? 你建议我怎么做?
感谢您的回答。
最佳答案
尝试使用 android:process=":servicename"
在单独的进程中启动服务在 AndroidManifest.xml 中。如果服务正在另一个进程中运行,它不会被 Activity 杀死。
关于android - 定期更新后台数据(Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23513114/