Android应用程序可以连续在后台运行吗?

时间:2017-05-11 14:58:12

标签: java android

我正在尝试开发一个Android应用程序,它将在后台连续运行,收集加速计传感器数据(每2分钟一次)。我已经扩展了Service类并实现了' onSensorChanged'方法。为了记录数据,我使用了一个在文件中写入相同内容的类。文件编写器类扩展了' AsyncTask'并且该操作已在方法' doInBackground'。

中编码

我已经尝试过以下链接: Android App with Service OnlyApp run in BackgroundRun app in background。 尽管我试图实现所建议的内容,但文件日志仍然清楚地显示有大部分时间(甚至12小时)没有数据。虽然我知道加速计传感器总能产生一些数据。而且,当我点击应用程序时,会生成数据日志。该文件写入15分钟(这也不是静态的)然后应用程序不再记录数据。 任何建议都将是巨大的帮助。已经卡住了一个月。提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果你想拥有一个连续运行的服务,你应该使用ForegroundService,因为BackgroundService可以被o.s.杀死。当内存低时,如here

所述
  

前台服务是用户主动了解的服务,并且在内存不足时不是系统要杀死的候选服务。前台服务必须为状态栏提供通知,该通知位于“正在进行”标题下。这意味着除非停止服务或从前台删除服务,否则无法解除通知。