如何在Android上永久运行服务?

时间:2017-03-22 22:39:45

标签: android intentservice

搜索引擎和Android开发者网站没有帮助,我想你可以帮我解决问题。

我想制作一个供个人使用的应用程序,它应该一直在旧平板电脑上运行(一直供电)。该应用程序将具有多个需要用户交互但不依赖于这些功能的功能,它应该运行后台作业以连续(实时!)检查某些内容,例如声音检测。它还应始终尝试连接网络上的其他设备。 这意味着工作几乎永远不会被杀死。我发现的一些评论建议使用AlarmManager或BroadcastReceiver。但是那些是由非常明确的触发器(时间或广播)触发的。我不希望这样,因为它应该一直持续执行它的任务。此后台作业还应该能够与我的应用程序的主活动进行通信,以报告其正在执行的操作并允许用户与其进行交互(例如,更改作业的设置)。

你知道怎么做到这一点吗? IntentService是否正确选择(希望它不会被杀死或者我应该让Activity重新启动它?)

谢谢!

1 个答案:

答案 0 :(得分:1)

  

你知道如何实现这个目标吗?

使用修改后的Android版本构建您自己的自定义ROM,其中包含您的代码作为本机Linux守护程序。

否则,你想要什么在技术上是不可能的。

您可以使用前景Service(不是IntentService)并从START_STICKY返回START_REDELIVER_INTENTonStartCommand()来近距离接触。 Android可能会不时终止您的流程,但它会在一段时间后自动重启您的服务。该服务可以使用自己的后台线程来执行您正在尝试的任何操作。