使用AsyncQueryHandler或AsycTask合并适配器数据

时间:2016-05-15 22:29:20

标签: android android-asynctask android-contentprovider android-adapter

我有一个带有游标适配器的RecyclerView。对于从游标加载的每个项目,我需要从外部ContentProvider(不是我的)加载其他数据。

我正在考虑从我的适配器AsyncQueryHandler开始AsyncTaskonBindViewHolder()。哪个是更好的选择,为什么?

或者这种做法只是一个坏主意?是否有更好的解决方案来合并来自不同来源的数据?

1 个答案:

答案 0 :(得分:1)

我建议您查看RxJava。

https://github.com/ReactiveX/RxJava/wiki/The-RxJava-Android-Module

为什么呢?那么唯一的缺点就是学习曲线。但是,RxJava有一个很好的方法来处理AsyncTasks所讨论的所有内容。这两个选项在技术上都不是,但是你需要做更多的工作才能确保它在你的生命周期和我认为不值得努力的多个条件中实际运行,特别是因为RxJava让它变得如此简单。

为了您的方便,这里有一些东西让您继续将AsyncTask转换为Rx.Observable。掌握了它之后,你再也不会使用AsyncTask了!

http://blog.stablekernel.com/replace-asynctask-asynctaskloader-rx-observable-rxjava-android-patterns/