私は OkHttp ライブラリにあまり詳しくなく、非同期リクエストにどのように使用するべきかについて疑問があります。
Android プログラミングでは、http用に Android ライブラリを使用し、リクエストにはasyncTaskを使用していました。
しかし、私は OkHttp ライブラリを試してみたかったので、正しい使用方法についていくつかの「問題」に直面しました。
例:
OkHttp を使用して非同期リクエストを実装するとします。OkHttp には独自の非同期 API ( https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/AsynchronousGet.java ) があることを読みました。
しかし、その後、この投稿 ( Square`s OkHttp. Download progress ) に出くわしました。この投稿では、男が「古い」asyncTask を使用していましたが、OkHttp 要求を使用していました (他のフォーラムで、AsyncTask を OkHttp で使用していることもわかりました)。
これは、POST にも適用できる次のコードで簡単に作成できるため、少し混乱します。
OkHttpClient client = new OkHttpClient();
// GET request
Request request = new Request.Builder()
.url("http://google.com")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Log.e(LOG_TAG, e.toString());
}
@Override
public void onResponse(Response response) throws IOException {
Log.w(LOG_TAG, response.body().string());
Log.i(LOG_TAG, response.toString());
}
});
質問:
- OkHttpで非同期リクエストを使用する正しい方法は何ですか?
- OkHTTPでAsyncTaskを使用するのは良い習慣ですか?
- OkHttp非同期APIを使用する代わりに、どのような場合にOkHttpでAsyncTaskを使用する必要がありますか?