Volley或ASyncTaskLoader

问题描述 投票:6回答:5

他们告诉我们应该使用ASyncTaskLoaders,因为它们非常擅长阻止UI线程。现在有Volley要使用。

我想我们不能同时使用它们,因为Volley会自己做背景。你怎么看?哪个更好?

android android-volley asynctaskloader
5个回答
3
投票

这两种技术是不同的,几乎无法比较。它们具有不同的目的,也可以一起工作。例如,您可以实现一个使用Volley加载数据并直接从Loader继承的Loader(而不是AsyncTaskLoader,因为Volley也处理线程)。

使用装载机的主要优点:

  • 生命周期自动与活动/片段生命周期同步
  • 数据和加载状态不会因配置更改而丢失
  • 加载程序监视更改并将新结果自动推送到客户端片段/活动。

使用排球的主要优点:

  • 高性能网络堆栈
  • 遵守HTTP服务器策略的自动磁盘缓存
  • 强大的取消机制。

您可以将两者结合使用以获得两种优势,也可以通过简单的API使用不带加载器的Volley。


2
投票

我已经使用Volley一个月了,我不得不说我很满意。确实不必担心线程实现细节,确实有很多帮助。到目前为止,常规网络和远程图像加载都一直很好。

不是没有问题,但是到目前为止,它们很少。


1
投票

您最好这样问,凌空vs异步vs RxJava

您可以将此RXJava用于后台线程,但是强烈建议使用Volley来提高调用静态服务的效率,与异步任务加载器相比,还需要很少的编码!


1
投票

这里是有关当前Android最佳做法的文章。它讨论了VolleyRXJava的用法:https://github.com/futurice/android-best-practices


0
投票

您可以将两者结合使用,以同时获得两个优点。

在活动(主线程)中,使用Volley调用API。通过简单的接口机制,您可以在数据可用时回调主线程。然后,使用来自Volley的新数据来forceLoad() AsyncTaskLoader。在AsyncTaskLoader中,为所有活动的容器添加水。当有可用数据时,它们将自动加载。

通过此方法,您将Volley的自动磁盘缓存与Loader的自动同步结合在一起。

© www.soinside.com 2019 - 2024. All rights reserved.