我想使用 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/