我是Android的新手,试图制作一个简单的新闻提要应用程序。我正在使用Asynctaskloader进行后台操作。目前,我正在使用一个单一的装载机连接不同的新闻来源。我的问题是,我应该为每个新闻源定义并运行不同的加载器吗?还是一个加载器也会处理它?我之所以问这个问题,是因为当应用程序打开时,需要5-10秒的时间来加载新闻(到目前为止,我只添加了三个新闻源),所以会不会是因为使用了一个装载机?
发布于 2018-09-28 19:26:48
使用单个加载程序的loadInBackground方法访问不同数据源的问题是,这种访问将在关联线程中连续进行。从N个源获取和返回新闻的总时间将是每个源的时间之和,包括延迟或超时,前提是要等到下载所有内容才能继续演示。
您应该考虑更多线程/加载器或其他策略(可能获取1、显示1、fetch 2、add 2等),其中用户不会对等待感到沮丧。
发布于 2018-09-28 19:56:04
加载器是很好的,因为它具有处理生命周期的能力,但它的效率不如LiveData和ViewModel。如果您关心性能、速度和最新情况,请使用Architecture组件( LiveData,ViewModel),而且,您不必坚持旧的做事系统,您可以编写多个简单的AsyncTask,并使用ViewModel和LiveData包装它。它像魔法一样工作,比装载机更好。有关如何将AsyncTask包装为LiveData和ViewModel的信息,请访问https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4
https://stackoverflow.com/questions/52560950
复制相似问题