Android OkHttp异步调用:AsyncTask还是OkHttp异步api?
我对OkHttp库不太熟悉,对于如何将其用于异步请求,我有一些疑问 对于Android编程,我使用Android库进行http,使用asyncTask进行一些请求 但因为我想尝试OkHttp库,所以我在如何正确使用它方面遇到了一些“问题” 示例: 假设您想使用OkHttp实现异步请求。我听说OkHttp有自己的异步api() 但后来我看到了这篇文章(),其中一个人使用了“旧”asyncTask,但使用了OkHttp请求(我在其他论坛上也发现,人们使用asyncTask和OkHttp) 这可能有点混乱,因为它可以简单地用这段代码制作,这段代码也可以用于POST:Android OkHttp异步调用:AsyncTask还是OkHttp异步api?,android,android-asynctask,okhttp3,Android,Android Asynctask,Okhttp3,我对OkHttp库不太熟悉,对于如何将其用于异步请求,我有一些疑问 对于Android编程,我使用Android库进行http,使用asyncTask进行一些请求 但因为我想尝试OkHttp库,所以我在如何正确使用它方面遇到了一些“问题” 示例: 假设您想使用OkHttp实现异步请求。我听说OkHttp有自己的异步api() 但后来我看到了这篇文章(),其中一个人使用了“旧”asyncTask,但使用了OkHttp请求(我在其他论坛上也发现,人们使用asyncTask和OkHttp) 这可能有点
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());
}
});
问题:
我尝试了两种方法,它们都满足了我的需要。这取决于你的情况,以及你真正需要什么。asynctask版本更好,看起来更简单,但另一个版本(如果您使用改型)提供了更多功能 e、 g.在asyncTask中,不可能取消网络呼叫,通过改造(我指的是我用此解决方案尝试的改造原因)可以轻松完成 以下是一些很好的链接,让您更好地了解改装的工作原理: AsyncTask实际上也是同步调用(这也取决于AsyncTask版本)。所以对于异步调用,您需要使用其他方法