定期更新后台数据(Android)

时间:2014-05-07 08:52:27

标签: android database sqlite android-intent android-background

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

  1. 从传感器收集数据
  2. 将数据存储在数据库中
  3. 定期重复(每隔X秒)
  4. 我希望在后台完成它,如果Main Activity被销毁,后台进度仍在运行。因此,如果您删除该活动,我希望它仍在运行。

    我现在正在做的是拥有AlarmManager Intent Service,以设置数据的定期记录,但每当我销毁Activity时,因为它们是相关的,我的应用程序崩溃。

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

    • Service:取决于MainThread,因此如果MainActivity被销毁, 崩溃
    • Intent Service:现在使用的那个,但就目前而言 与AlarmManager相关的,与MainActivity有关,当它是 被毁坏,崩溃。
    • AsyncTask:这个问题就是这个问题 应该在后台完成一项任务并完成,但是我 真正想要的是定期做,直到用户说要停止。所以 这不是一次性问题。

    还有其他方法可以提供后台服务吗? 可以使用之前说过的任何一个用于我的目的吗? 你怎么建议我这样做?

    感谢您的回答。

1 个答案:

答案 0 :(得分:1)

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