2

我的应用程序的主要目标是,当按下按钮时:

  1. 从传感器收集数据
  2. 将数据存储在数据库中
  3. 定期重复(每 X 秒)

我想在后台完成,如果Main Activity被破坏,后台进度仍在运行。因此,如果您删除该活动,我希望它仍在运行。

我现在正在做的是AlarmManager使用Intent Service, 来设置数据的定期记录,但是每当我销毁Activity它们时,我的应用程序就会崩溃。

我知道运行后台进程有不同的方法,但没有一个适合我的:

  • Service: 依赖于 MainThread,所以如果 MainActivity 被销毁,就会崩溃
  • Intent Service: 现在使用的那个,但是就它与AlarmManager相关,也就是与MainActivity相关,当它被销毁时,会崩溃。
  • AsyncTask:这个问题是,它应该在后台执行一项任务并完成,但我真正想要的是定期执行,直到用户说停止。所以这不是一朝一夕的事情。

有没有其他方法可以拥有后台服务?前面所述的任何内容都可以用于我的目的吗?你建议我怎么做?

感谢您的回答。

4

1 回答 1

1

尝试使用android:process=":servicename"AndroidManifest.xml 在单独的进程中启动服务。如果服务在另一个进程中运行,它不会被活动杀死。

于 2014-05-07T09:01:17.847 回答