我想知道Android中的Adapter和Loader有什么区别。我已经查看了文档,但无法弄清楚它们之间的区别。任何帮助,将不胜感激。谢谢!
答案 0 :(得分:24)
两者都提供了数据访问的抽象,但是Loader在后台执行查询,而适配器在当前(可能是UI)线程中执行。
例如,访问straightforward way的Content Provider使用SimpleCursorAdapter。但直接从活动查询大量数据可能会导致其被阻止,从而导致“应用程序无响应”#34;信息。即使它没有,用户也会在UI中看到恼人的延迟。要避免这些问题,您应该在单独的线程上启动查询,等待它完成,然后显示结果。这就是CursorLoader将要做的事情。
话虽如此,它们有时也会相互结合使用。首先使用CursorLoader加载In this example数据,然后在AdapterView的适配器中更新该游标以供显示。
答案 1 :(得分:12)
<强>装载机: - 强>
加载器使得在活动或片段中异步加载数据变得容易
它们适用于每个Activity和Fragment。它们提供异步数据加载
他们监控数据来源,并在内容发生变化时提供新结果
在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的光标。因此,他们不需要重新查询他们的数据
Here您可以找到有关加载程序的详细信息。
<强>适配器: - 强>
Adapter对象充当AdapterView
与该视图的基础数据之间的桥梁。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目创建一个View。 Here is one video for you。观看此视频,然后您了解工作,适配器的优势。
Here是适配器的最佳教程。
答案 2 :(得分:3)
我认为这两个类在不同的抽象层上运行:虽然Adapter是一个需要由提供实际数据的类实现的接口,但Loader包含基于a的异步加载数据的功能。光标。
我认为您可以将Loader视为适配器以及运行它的AsyncTask。
另请注意,Loader仅适用于Android 3.0。