バックグラウンド処理を提供するIntentServiceを備えたアプリケーションがあります。具体的には、ネットからデータをフェッチしてSqliteデータベースに保存します。私のアクティビティはContext.startService()を使用してデータを更新するようにサービスに要求し、更新が完了するとサービスはローカルブロードキャストメッセージを送信します。
IntentServiceは、スレッドプールを使用して作業を行います。主に、リクエストが完了する前に新しいアクティビティが開かれた場合、別のリソースに対する新しいリクエストは、前のリソースが終了するのを待つことをブロックしません。
それはすべて正常に機能しますが、同じリソースに対する複数の同時リクエストを防ぐために、リクエストを送信した後、サービスからDONEメッセージが返されるまで新しいリクエストの送信を停止するフラグをアクティビティに設定しました。
これで、操作の途中でIntentServiceが強制終了された場合、DONEメッセージが送信されることはなく、アクティビティは要求が満たされていないことを認識せず、リソースを再要求しません。これは可能ですか?そして、それが起こった場合、アクティビティに通知する方法はありますか?