微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如果OS杀死了IntentService该怎么办?

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

>如何重启IntentService?
>如何恢复队列?

好吧,我知道总有一个服务可以覆盖它的onStartCommand()并告诉服务该做什么.但由于其队列模型,我需要一个IntentService.

最佳答案
如果工作队列需要持久化,那么IntentService就不是您想要使用的.如果您将许多Intent发送到IntentService然后该进程被Android杀死,则无法重建队列. IntentService简单地使用内部处理程序将Intent排队,并且这些不会在任何地方保留.他们只是迷路了.

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

原文地址:https://www.jb51.cc/android/430980.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐