2012-09-14 24 views
13

我想知道Android中的适配器和加载程序有什么区别。我已经看过文档,但无法弄清它们之间的区别。任何帮助,将不胜感激。谢谢!Android中适配器和加载程序的区别

+0

你能告诉我们什么是Adapter和什么是Loader?让我知道,你从文档中得到了什么。 – Shrikant

+0

你也可以查看这篇文章:http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html。您将获得理解加载器和loadermanager所需的所有信息。 – Sam003

回答

19

两者都提供数据访问的抽象,但Loader在后台执行查询,而Adapter在当前(假定为UI)线程中执行。

例如,访问Content Providerstraightforward way使用SimpleCursorAdapter。但直接从一个Activity查询大量数据可能会导致它被阻塞,从而导致“应用程序未响应”消息。即使不这样,用户也会在用户界面中看到令人讨厌的延迟。为避免这些问题,您应该在单独的线程上启动查询,等待它完成,然后显示结果。这就是CursorLoader会做的。

这就是说,他们有时被用于彼此的联合。 In this example数据首先加载一个CursorLoader,然后该光标在AdapterView的适配器中更新以显示。

+2

这应该是IMO接受的答案。 – Solace

+0

同意,这应该是公认的asnwer – feresr

3

我认为这两个类在不同的抽象层次上运行:虽然Adapter是一个需要由提供实际数据的类实现的接口,但Loader包含基于Cursor异步加载数据的功能。

我认为你可以将Loader看作是一个Adapter以及一个运行它的AsyncTask。

另请注意,Loader仅适用于Android 3.0以上版本。

9

装载机: -
装载机可以很容易在活动或片段 异步加载数据他们提供给每一个活动和片段。它们提供数据的异步加载。
他们监视他们的数据来源,并在内容发生变化时提供新的结果。
它们在配置更改后重新创建时自动重新连接到最后一个加载器的光标。因此,他们不需要重新查询他们的数据。
Here您可以找到有关装载机的详细信息。

适配器: -
适配器对象充当AdapterView之间的桥梁,该视图的底层数据。适配器提供对数据项的访问。适配器还负责为数据集中的每个项目制作视图。 Here is one video for you。观看此视频,然后您了解适配器的优势。
Here是适配器的最佳教程。

+0

那么,适配器是否专门用于ListView,或者它们也可以用于其他UI元素呢?顺便说一句,谢谢你的回答:) –

相关问题