【发布时间】:2012-09-28 20:57:35
【问题描述】:
我有一个应用程序,它有一个 IntentService 来提供后台处理 - 特别是它从网络获取数据并将其存储在 Sqlite 数据库中。 My Activities 使用 Context.startService() 请求服务更新数据,更新完成后服务发送本地广播消息。
IntentService 使用线程池来完成工作 - 主要是在请求完成之前打开新 Activity 的情况下,因此对不同资源的新请求不会阻塞等待前一个完成。
一切正常,但为了防止对同一资源的多个同时请求,我在活动发送请求后在活动中设置了一个标志,停止发送新请求,直到它从服务返回 DONE 消息.
现在,如果 IntentService 在操作过程中被终止,它将永远不会发送 DONE 消息,并且 Activity 永远不会知道请求未完成,也不会重新请求资源。这可能吗?如果发生这种情况,有什么方法可以通知 Activity?
【问题讨论】:
标签: android android-intent android-service