从Android P(API 28)开始,Android Studio Loaders已被弃用?

问题描述 投票:3回答:3

我是Android的新手,我已经完成了一些Android应用程序开发课程,现在我正在尝试应用我学到的东西。我选择了一个新闻应用程序。它将从5-10源提取新闻,并在recyclerview中显示它们。

我认识到我使用的课程材料已经过时了。我已经使用AsynctaskLoader来处理互联网连接问题,但现在在官方的Android文档中它说“从Android P(API 28)开始已经弃用了加载程序。在处理Activity和Fragment生命周期时处理加载数据的推荐选项是使用ViewModels和LiveData的组合。“

我的问题是我应该将我的代码转换为符合ViewModels和LiveData,还是Asynctask会处理我的任务(或任何其他建议)?正如我所提到的,我只想从几个源中提取新闻数据并在应用程序中显示它们。看来我不需要数据存储功能。但是,现在我添加了两个新闻来源,该应用似乎加载了一些新闻数据。这种延迟是否与使用加载器有关?使用viewmodels会加快新闻加载任务(特别是当有很多新闻源时)?

android android-asynctask loader android-viewmodel
3个回答
2
投票

装载程序很好,因为它能够处理生命周期,但它没有LiveData和ViewModel那么高效。如果你关心性能,速度和最新,使用Android架构组件(LiveData,ViewModel),你也不必坚持旧的服务系统,你可以编写一个简单的AsyncTask并用ViewModel包装它LiveData。它像魔术一样,比装载机更好。有关如何在LiveData和ViewModel中包装AsyncTask的信息,请访问https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4


4
投票

如果你已经用装载机编写了它,就没有理由急于改变它。不推荐并不意味着消失了。不,装载机不会增加显着的性能损失 - 任何性能问题都会出现在您应用的其他地方。


0
投票

从Android P(API 28)开始,已经弃用了加载程序。在处理Activity和Fragment生命周期时处理加载数据的推荐选项是使用ViewModels和LiveData的组合。 ViewModels可以承受像Loaders这样的配置更改,但具有更少的样板。 LiveData提供了一种生命周期感知的加载数据的方法,您可以在多个ViewModel中重复使用。您还可以使用MediatorLiveData组合LiveData,并且可以使用任何可观察的查询(例如来自Room数据库的查询)来观察对数据的更改。 ViewModels和LiveData也可用于无法访问LoaderManager的情况,例如服务中。串联使用这两者可以轻松访问应用程序所需的数据,而无需处理UI生命周期。

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