无法理解何时需要使用 Loader
以及何时需要使用 AsyncTaskLoader
?我阅读了这些类(class)的文档,但我理解得很差。据我了解,Loader 允许执行后台工作,因此它必须在非 GUI 线程中启动,不是吗?为什么AsyncTaskLoader
做的都是一样的?我已经很困惑了。
请有人向我解释更多细节。
最佳答案
所有 Loader
方法均在主线程上调用 - Loader
不在后台线程上执行任何工作。这允许您使用任何您想要的加载机制 - 无论是单独的线程、对另一个组件的回调还是其他任何东西。
AsyncTaskLoader
扩展了 Loader
并添加 loadInBackground() ,专门在后台线程上调用的方法。它只是简单情况下的一个便利类。
无论哪种情况,加载器的真正作用是使加载数据生命周期感知,如 this blog post 中所述。 - Loader
(因此,AsyncTaskLoaders
)可以在屏幕旋转等配置更改中幸存。该博客包含许多 AsyncTaskLoader
示例,使用带有更改观察器的 AsyncTaskLoader
以及从另一个数据源获取数据的 Loader
使用回调。
关于android - AsyncTaskLoader 和 Loader 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322743/