我应该为每个 http 连接使用一个 Loader 还是为所有连接使用一个 Loader?
Should I use a Loader for each http connection or a single Loader for all it enough?
我是 Android 的新手,正在尝试制作一个简单的新闻提要应用程序。我正在使用 Asynctaskloader 进行后台操作。现在,我使用单个 Loader 来连接不同的新闻源。我的问题是我应该为每个新闻源定义和 运行 不同的加载器,还是一个加载器也能处理它?我问是因为应用程序打开时加载新闻需要 5-10 秒(到目前为止我只添加了三个新闻源),所以会不会是因为使用了单个加载程序?
使用单个加载程序的 loadInBackground
方法访问不同数据源的问题在于,此类访问将在相关线程内按顺序进行。从 N 个来源获取新闻和 return 新闻的总时间将是每个来源时间的总和,包括延迟或超时,假设您等到所有内容都下载完毕才能继续演示。
您应该考虑更多 threads/loaders 或其他策略(可能是获取 1、显示 1、获取 2、添加 2 等),让用户不会因等待而感到沮丧。
Loader 很好,因为它能够处理生命周期,但效率不如 LiveData 和 ViewModel。如果你关心性能,速度和最新,使用Android架构组件(LiveData,ViewModel),同样,你不必拘泥于旧的系统服务,你可以编写多个简单的AsyncTask并包装它与 ViewModel 和 LiveData。它像魔术一样工作,比 Loaders 更好。有关如何在 LiveData 和 ViewModel 中包装 AsyncTask 的信息,请访问 https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4
我是 Android 的新手,正在尝试制作一个简单的新闻提要应用程序。我正在使用 Asynctaskloader 进行后台操作。现在,我使用单个 Loader 来连接不同的新闻源。我的问题是我应该为每个新闻源定义和 运行 不同的加载器,还是一个加载器也能处理它?我问是因为应用程序打开时加载新闻需要 5-10 秒(到目前为止我只添加了三个新闻源),所以会不会是因为使用了单个加载程序?
使用单个加载程序的 loadInBackground
方法访问不同数据源的问题在于,此类访问将在相关线程内按顺序进行。从 N 个来源获取新闻和 return 新闻的总时间将是每个来源时间的总和,包括延迟或超时,假设您等到所有内容都下载完毕才能继续演示。
您应该考虑更多 threads/loaders 或其他策略(可能是获取 1、显示 1、获取 2、添加 2 等),让用户不会因等待而感到沮丧。
Loader 很好,因为它能够处理生命周期,但效率不如 LiveData 和 ViewModel。如果你关心性能,速度和最新,使用Android架构组件(LiveData,ViewModel),同样,你不必拘泥于旧的系统服务,你可以编写多个简单的AsyncTask并包装它与 ViewModel 和 LiveData。它像魔术一样工作,比 Loaders 更好。有关如何在 LiveData 和 ViewModel 中包装 AsyncTask 的信息,请访问 https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4