我想知道Android中的Adapter和Loader有什么区别。我已经查看了文档,但无法弄清楚它们之间的区别。任何帮助,将不胜感激。谢谢!
3 回答
两者都提供了数据访问的抽象,但 Loader 在后台执行查询,而 Adapter 在当前(可能是 UI)线程中执行。
例如,访问Content Provider的一种直接方法是使用 SimpleCursorAdapter。但是直接从 Activity 查询大量数据可能会导致它被阻塞,从而导致“Application Not Responding”消息。即使没有,用户也会在 UI 中看到令人讨厌的延迟。为避免这些问题,您应该在单独的线程上启动查询,等待它完成,然后显示结果。这就是CursorLoader要做的事情。
话虽如此,它们有时会相互结合使用。在此示例中,首先使用 CursorLoader 加载数据,然后在 AdapterView 的 Adapter 中更新该光标以进行显示。
加载器:-
加载器使异步加载活动或片段中的数据变得容易。它们可用于每个活动和片段。它们提供数据的异步加载。
他们监控数据的来源,并在内容发生变化时提供新的结果。
在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的光标。因此,他们不需要重新查询他们的数据。
在这里,您可以找到有关加载程序的一些详细信息。
适配器:
适配器对象充当AdapterView
该视图的基础数据和基础数据之间的桥梁。适配器提供对数据项的访问。Adapter 还负责为数据集中的每一项创建一个 View。 这是给你的一个视频。观看此视频,您将了解适配器的工作和优势。
这是适配器的最佳教程。
我认为这两个类在不同的抽象级别上运行:虽然Adapter是一个需要由提供实际数据的类实现的接口,但 Loader 包含基于 Cursor 异步加载数据的功能。
我认为您可以将 Loader 视为 Adapter 加上运行它的 AsyncTask。
还要记住,Loader 只能从 Android 3.0 开始使用。