操作系统杀死了IntentService怎么办?

时间:2013-12-23 09:56:19

标签: android intentservice

假设我们有IntentService的实现,然后我们从Activity启动它,然后将其他几个Intent添加到队列中IntentService进行处理。所以现在我们正在处理第一个Intent,并且其余的Intent在队列中。现在让我们假设操作系统因为可理解的原因而杀死我们的Application进程。问题是:

  1. 如何重新启动IntentService

  2. 如何恢复队列?

  3. 嗯,我知道总有一个Service你可以覆盖它onStartCommand()并告诉Service该怎么做。但由于IntentService模型,我需要queue

1 个答案:

答案 0 :(得分:4)

如果工作队列需要持久化,那么

IntentService不是您想要使用的。如果您向Intent发送了许多IntentService,然后该进程被Android杀死,则无法重建队列。 IntentService只需使用内部IntentHandler进行排队,但这些内容并未在任何地方保留。他们只是迷路了。

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