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