java - 如何将 MVVM 与 asyncTask 或任何其他东西一起使用?

标签 java android android-asynctask asynctaskloader

我想使用 AsyncTaskLoader 但它已被弃用,所以我知道我可以使用 ViewModel 和实时数据或可变数据来代替 AsyncTaskLoader,但我不知道如何将它们用于异步任务。

最佳答案

首先,我建议使用 JobScheduler/WorkManager,因为 Google 指出 here .

但是,如果您仍然对使用 AsyncTask/AsyncTaskLoader 感兴趣,这样的事情可能会有所帮助。自 ViewModel持有对 LiveData 的引用和 ViewModel更新 View (Activity or Fragment) ,您可以进行后台网络调用(使用 AsyncTaskLoader)并在 onLoadFinished 时更新 liveData叫做。 LiveData 的这次更新应该会触发可观察对象并最终触发 View (Activity/Fragment)

注意:确保您从 API 调用返回的数据(例如:<POJO.class>)的类型为 MutableLiveData/LiveData .

关于java - 如何将 MVVM 与 asyncTask 或任何其他东西一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52542673/

相关文章:

java - 在 Android 数据绑定(bind)中将 "custom conversions"与 @BindingConversion 放在哪里?为什么?

java - 初始化密码时出错

java - 如何将垂直 ProgressBar 实现为 Activity 背景

android - Apache Cordova InAppBrowser 显示键盘并立即隐藏它

android - 如何在启动 Asynctask 10 秒后显示 toast

java - DBUnit PostgresqlDataTypeFactory 不识别枚举列表

java - InetAddress 可以表示无法解析的主机名吗?

android - 找不到证书链,如何修复并发布到 Google Play 商店?

android - 我可以在异步任务中将参数传递给 preExecute() 方法吗?

java - 重新填充 ArrayList 后出现 IndexOutOfBoundsException(仅限 Marshmallow)