应该在后台线程中处理Volley onResponse()吗?

时间:2017-12-16 19:23:56

标签: android performance android-volley

我使用Volley获取所有与网络相关的代码。由于Volley在主UI线程中完成了实际的网络部分,我并没有真正考虑过它,但我现在意识到,在一些实例中,我在onResponse()中对响应数据做了一些重要的处理。看起来这个代码确实在主线程上运行。最好的方法是什么?我应该为代码的特定部分定义AsyncTask,还是应该将整个网络请求放在AsyncTask中,尽管有Volley的线程机制。

1 个答案:

答案 0 :(得分:0)

我建议不要使用AsyncTask,因为在销毁或重新创建活动时它有自己的缺点。而且如果你使用Volley的排队机制,这只会作为一个附加组件。

我能想到的一个解决方案是使用Loaders。进行网络调用并在 loadInBackground 方法中处理响应。当调用onLoadFinished时,您将获得已处理的响应。

另一种解决方案(不推荐且效率不高)是使用服务。您可以从服务进行网络呼叫并处理数据并与活动进行通信。