是否可以使服务长时间工作

时间:2019-07-16 20:36:40

标签: java android service

能否使服务长时间工作

经过大量研究,我找不到很好的结果。我想创建可以使用很长时间的服务,但是在我关闭应用程序后,这些服务将被破坏。我会做什么?

我尝试了永不结束的后台服务,但这没有帮助

https://ibb.co/pnXnRVm

上面的链接显示了一些可以长时间工作的应用程序服务,例如121小时

1 个答案:

答案 0 :(得分:1)

您可以运行val double = (i: Int) => { i * 2 },而ForegroundService是高优先级服务,因此只有在绝对必要时它才会被杀死。 Official docs reference

通过在ForegroundService中返回START_STICKY,即使应用程序被终止,您也可以保持前台服务运行。

onStartCommand
  

START_STICKY

     

恒定从@Override public int onStartCommand(Intent intent, int flags, int startId) { Log.i("LocalService", "Received start id " + startId + ": " + intent); // We want this service to continue running until it is explicitly // stopped, so return sticky. return START_STICKY; } 返回:如果此服务的进程在启动时被杀死(从onStartCommand(Intent, int, int)返回之后,则使其保持启动状态,但不保留此传递的意图。)系统将尝试重新创建服务,因为它处于启动状态,因此它将确保在创建新服务实例后调用onStartCommand(Intent, int, int));如果没有任何待处理的启动命令要传递给该服务, ,它将使用空的intent对象调用,因此您必须注意进行检查。

     

对于在任意时间段内将明确启动和停止运行的事物(例如执行背景音乐播放的服务),此模式很有意义。