0

タスクを同時に実行するために 3 つの asynctasks を呼び出すバックグラウンド スレッドがあります。呼び出しスレッドは、これらのタスクの 3 セットのキューとして機能します。

したがって、基本的には 3 つの asynctasks を同時に呼び出す必要があり、それらが完了したら、キューの次の 3 つのタスクを呼び出して繰り返します。

ただし、3 つの asynctask が終了するまで、呼び出し元のスレッドを一時停止するのに問題があります。その結果、キュー内の次の 3 つのタスクは、前の 3 つのタスクが完了する前に実行を開始します。

とにかく、asynctasks が完了するまで呼び出し元のスレッドを保持する必要があります。asynctask で .get() を使用できることはわかっていますが、3 つの asynctask を同時に実行することはできません。

4

2 に答える 2

0

非同期タスクは、物事を非同期的に行うことを意図しています....したがって、これは単純な方法では実行できません...

これを行うことができたとしても、基本的に非同期操作のポイント全体が無効になります。

同期ネットワーク操作を探す必要があります。

Volleyをチェックしてください...これは、ネットワーク操作専用に作成されたGoogleライブラリであり、同期操作をサポートしています

http://www.truiton.com/2015/02/android-volley-making-synchronous-request/

他にも多くのライブラリが利用可能です... Retrofitは、もう 1 つの優れたライブラリです。

于 2016-08-03T11:54:58.667 に答える