Android AsyncTask用于网络目的是一个坏主意吗?

时间:2016-05-26 14:21:16

标签: android http networking android-asynctask

过去一年我一直在使用AsyncTasks来访问服务器并检索数据,但为此目的使用AsyncTasks是不是一个坏主意?

我看到很多人使用诸如Retrofit之类的librariea来处理他们的网络操作。

我是否应该使用某些第三方图书馆(甚至是谷歌的排球)来处理这类请求?

2 个答案:

答案 0 :(得分:4)

异步任务是处理UI线程任务的基本Android方式。

异步任务有很多限制,例如没有方向更改支持,无法取消网络调用,也没有简单的方法来并行进行API调用。

关于网络2事情非常重要

  • 速度
  • 并行请求

Retrofit赢得速度和并行网络通话,volley是下一个,Async task大约慢<3> 对于单Retrofit请求和慢13倍 25请求。

显然使用Async任务是个坏主意

enter image description here

图片来源http://instructure.github.io/blog/2013/12/09/volley-vs-retrofit/

答案 1 :(得分:2)

AsyncTasks存在很多问题,例如: 没有方向,更改支持无法取消网络呼叫,没有简单的方法可以并行进行API调用。

基本上它意味着一次只运行一个AsyncTask,并且需要多个API调用运行得非常慢。

而是我们的改造。您可以干净地动态地将路径段,POST / GET变量替换为端点及其超快速。