假设我们有IntentService
的实现,然后我们从Activity
启动它,然后将其他几个Intent
添加到队列中IntentService
进行处理。所以现在我们正在处理第一个Intent
,并且其余的Intent
在队列中。现在让我们假设操作系统因为可理解的原因而杀死我们的Application
进程。问题是:
如何重新启动IntentService
?
如何恢复队列?
嗯,我知道总有一个Service
你可以覆盖它onStartCommand()
并告诉Service
该怎么做。但由于IntentService
模型,我需要queue
。
答案 0 :(得分:4)
IntentService
不是您想要使用的。如果您向Intent
发送了许多IntentService
,然后该进程被Android杀死,则无法重建队列。 IntentService
只需使用内部Intent
对Handler
进行排队,但这些内容并未在任何地方保留。他们只是迷路了。
如果我是你,我会自己实施。 IntentService
的代码不是那么大,您可以查看它并将其用作您自己Service
的模型。您将要将您的队列写入数据库,以便它是持久的。从START_STICKY
返回onStartCommand()
,以便Android因资源要求而被杀死时会自动重启Service
。