私はIntentServiceを拡張するクラスABCを持っています。このクラスは、WakefulBroadcastReceiverを拡張するDEFという受信者クラスによって呼び出されます。IntentServiceオブジェクトが完全に処理され、無限の時間がかかる場合、他のキューイングされたインテントはどのように処理されますか?
DEFクラスがインテントを受信するたびに、startWakefuleServiceを呼び出し、そのインテントをABCクラスに渡します。
ABCクラスのonHandle()では、インテントが処理され、関連情報がコールバックを使用してサーバーに送信されます。
onHandle()の最後に、DEF.completeWakefulIntent(intent)が呼び出されて、Wake Lockが返されます。
は、私の質問は、次のシナリオについてです:
私BroadcastReceiverクラスDEF、それは、クラスABCを介して複数のIntentServicesを開始
複数のインテントを受け取りました。
最初のインテントサービスは、サーバーにHTTP要求を行います。これは、戻ってくるのに時間がかかったり、まったく戻ってこない場合があります。
開始された他のインテントサービスは、処理を待っているか、処理待ちのキューに滞留しますか?
[documentation](https://developer.android.com/reference/android/app/IntentService.html)は、IntentServiceオブジェクトが順番に処理されることを示しています。
ご協力いただければ幸いです。
ありがとうございます。私の場合は、POSTリクエストを実行している間に非同期呼び出しを行っていますが、サーバーからの応答を受け取るまで、IntentServiceは他のオブジェクトをブロックしますか?言い換えれば、処理が完了したときをどのように知るのですか? – Kanika
プロジェクトの詳細がわかりません。 onHandleIntent()の前回の呼び出しが完了するまで、onHandleIntent()は再び呼び出されません。 onHandleIntent()を使って非同期的に何かを行う場合は、IntentServiceを使用しないでください。 –
何がonHandleIntent()の完了をマークしますか?メソッドの終わりですか?またはcompleteWakefulIntentコール? – Kanika