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