如何在 Android 上永远为 运行 提供服务?

How to have a service to run eternally on Android?

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

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

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

谢谢!

Do you know any way how to accomplish this?

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

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

您可以通过使用前景 Service(而不是 IntentService)并从 onStartCommand() 返回 START_STICKYSTART_REDELIVER_INTENT 来相当接近。 Android 可能会不时终止您的进程,但它应该会在片刻后自动重新启动您的服务。该服务可以使用自己的后台线程来执行您想要执行的任何操作。