如何运行一个连续的过程

时间:2011-02-17 09:18:33

标签: android service process

我正在开发一款Android应用,用于我们在实验室中运行的实验。应用程序使用加速度计监视用户移动,定期对此数据执行计算,并将结果写入文件。

我目前正在努力寻找一种方法来运行这个过程15-20分钟我们的试验,而不会被杀死。尽管声明应用程序持久,尝试各种服务方法(startForeground(),START_STICKY,..)等...我似乎无法让Android操作系统决定暂停或终止我的服务/进程。

我已经完成了一些研究,我能找到的唯一建议是如何设置你的流程以便从被杀死中优雅地恢复,但是我不能在我的数据中留下空白,因此需要这个过程连续运行。 / p>

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:0)

documentation我得到的印象是,如果你想要的服务只能在极低的内存情况下被杀死,你需要:

  • startForeground()(你已经完成了)
  • START_STICKY(您也尝过这种方法)或START_REDELIVER_INTENT(如果它被杀死则会重新启动服务,但会在您的数据中留下空白)
  • 在一个单独的线程中运行所有处理
  • 使用Context.startService()启动服务

唯一可靠的方法是将其作为system daemon

答案 1 :(得分:0)

我能解决的最佳解决方案是将设备上的屏幕睡眠延迟时间增加到30分钟,并祈祷在我们的试用过程中没有按下任何按钮。