だから私は複数のHTTP Post/Getsを作成するアプリを持っています
EG ログイン、getThisData、getThatData、sendThis、sendThat
それぞれを処理するために個別の AsyncTask を用意する方が良いですか
または、1 つの非同期タスクを切り替えて別の方法で処理しますonPostExecute
。doInBackground
乾杯
だから私は複数のHTTP Post/Getsを作成するアプリを持っています
EG ログイン、getThisData、getThatData、sendThis、sendThat
それぞれを処理するために個別の AsyncTask を用意する方が良いですか
または、1 つの非同期タスクを切り替えて別の方法で処理しますonPostExecute
。doInBackground
乾杯
簡単な答えは「はい」です。呼び出しごとに新しい AsncTask を作成する必要があります。
興味があれば、長い答えは次のとおりです。
Android の Asynctask ドキュメントによると、
ハッピー非同期コーディング!:-)
タスクが互いに独立しているか、相互に関連しているかによって異なります。独立している場合は、同じ非同期でこれを処理できます。たとえば、ログイン応答からのデータが必要で、その値を getthis タスクに渡す場合は、別の非同期を使用することをお勧めします。ログインを別の非同期にする、getthis、get lthat sendthis sendthat を 1 つの非同期にすることができます。
AsyncTask の 1 つのインスタンスを作成し、それを数回 execute() する場合は、いいえ:
AsyncTask を数回実行します。
設計について質問している場合: 異なる種類のデータを取得するために 1 つのクラスを作成する必要があるかどうか。実際には状況によって異なります。
これらの HTTP 呼び出しがシーケンシャルであると想定される場合は、それらを 1 つの AsyncTask クラスに入れることができます。
共通点が多い場合は、異なる URI を指すだけで、call(String uri) メソッドを記述し、AsyncTask でそのメソッドを呼び出すことができます。この場合、AsyncTask も 1 つあれば十分だと思います。
特に事前実行と事後実行の機能が異なる場合は、おそらくそれらを分離する必要があります。コードを論理ブロックに編成してみてください。たとえば、ログインするための非同期タスクと、JSON 経由で大量のドキュメント データをダウンロードするための非同期タスクがある場合、別の非同期タスクが必要になります。
ただし、類似したデータまたは部分的に同じデータを返す 2 つの別個の API 呼び出しがあるとします。一方がファイルの詳細 (名前、サイズ) を返し、もう一方が同じデータを返しましたがファイルのリビジョンであった場合、切り替えることができます。実行後は同じ (または部分的に同じ) コードを実行して JSON からデータを抽出するため、これらは同じ ASYNC 内にあります。