人気のあるRESTクライアント(retrofit、volleyなど)のを使用する主な理由の1つは、アプリケーション層で管理している詳細の量を減らすことです。これらの詳細の1つは、ネットワーク要求がメインスレッドから確実に行われるようにすることです。他の機能用に既に使用しているライブラリで、同じ機能を提供するときに、より少ないセレモニーで、なぜAsyncTask
を使用するのですか?私が考えることができる唯一の理由は、あなたがライブラリのスレッディングがとても良いとは思わないということです。この問題は改造2には当てはまりませんが、OkHttp
を使用して非同期呼び出しをディスパッチします。 OkHttpはしばらくの間使用されており、広範囲に使用されています。非同期要求を実行するために独自のスレッドプールを管理しています。
したがって、retrofit asyncを使用することのメリットは、より洗練されたコードであり、私には改造同期呼び出しのvs AsyncTask
の欠点はありません。私が同期呼び出しを使用する唯一の時間は、コードが別の理由でバックグラウンドスレッドですでに実行されている場合です。ネットワークコールのためだけに別のスレッドまたはasynctaskを作成せず、enqueue
を代わりに使用します。