如果操作系统终止了意图服务,该怎么办



假设我们有一个IntentService的实现,然后我们从Activity开始,然后在队列中添加其他几个IntentIntentService进行处理。所以现在我们首先处理Intent,其余的Intent在队列中。现在让我们想象一下,由于可以理解的原因,操作系统会杀死我们的Application进程。问题是:

  1. 如何重新启动IntentService

  2. 如何恢复队列?

好吧,我知道总有一个Service,你可以覆盖它的onStartCommand()并告诉Service该怎么做。但我需要一个IntentService,因为它的模型queue

如果工作队列需要持久化,则IntentService不是您想要使用的。如果您向IntentService发送许多Intent,然后该进程被Android杀死,则无法重建队列。 IntentService只是使用内部HandlerIntent排队,并且这些不会在任何地方持久化。他们只是迷路了。

如果我是你,我会自己实现这个。IntentService的代码不是那么大,您可以查看它并将其用作您自己的Service模型。您需要将队列写入数据库,以便它是持久的。从onStartCommand()返回START_STICKY,以便 Android 在由于资源需求而终止Service时自动重新启动您的。

相关内容

最新更新