首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IntentService工作队列状态

IntentService工作队列状态
EN

Stack Overflow用户
提问于 2012-06-06 20:57:32
回答 1查看 965关注 0票数 1

我正在开发一个Android应用程序,它运行一系列异步传感器扫描,例如获取附近蓝牙设备的MAC地址列表,获取手机的当前位置(GPS),并记录周围噪音的音频样本。每当每次扫描完成时,我想要一个服务来处理将收集到的数据发送到REST服务(使用http和REST)。

我面临的问题是,我是应该实现自己的自定义服务,还是应该使用IntentServce来处理上传数据的多个请求(使用‘startService()’发送的意图),因为我希望100%确定最终会将找到的数据发送到want服务(如果互联网连接可用)。

如果Android决定杀死我的IntnetService,或者用户在处理它的请求工作队列时强行杀死它,我会丢失待决请求队列吗?即,我是否需要保存工作队列的状态(因此被迫在不使用IntentService的情况下自己实现服务)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-06 21:10:25

如果安卓决定杀死我的IntnetService,或者用户在处理它的请求工作队列时强行杀死它,我会丢失挂起的请求队列吗?

如果用户重新启动他们的设备,您的队列将会消失。否则,至少在理论上,从onStartCommand()返回START_REDELIVER_INTENT (这是IntentService的默认IIRC)应该会给出任何未处理的Intent命令。

也就是说,如果你想“百分之百确定”命令被处理,我建议你创建你自己的持久工作队列(例如,数据库表)。使用IntentService more作为请求来处理所有未完成的持久性工作队列事件(如果有)。使用BOOT_COMPLETED BroadcastReceiver处理重新启动的情况,告诉您的IntentService处理由于重新启动而留下的任何未完成的命令。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10914681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档