0

这是涉及跨越我所谓的“Hello World Gulf”的问题之一不能假设 onUpgrade 会很快。

现在我的首选书(Wrox,Professional Android 4 development - 我不是因为专业才选择它,我选择它是因为 Wrox 就像指南中的 O'Reilly - O'Reilly 不喜欢指南,它们是参考书)仅简要介绍了使用Loaders,因此我进行了一些搜索,更多阅读等等。

我基本上得出的结论Loader是 a 不仅仅是一个包装器,它只是在不同的线程上做事情,并给你一个回调(在那个工作线程上)来处理事情,它给你 3 个步骤,启动查询,使用查询结果,并重置查询。

这似乎是一个很薄的包装,所以问题 1:

为什么我要使用Loaders?

我觉得我可能遗漏了一些你看到的东西,如果你可以这么说的话,大多数像 Android 这样的“实用程序”真的很有用,正如我所说的,加载器看起来像一个非常薄的包装器,它们迫使我有回调可能会变得乏味的名称有多个查询正在进行

http://developer.android.com/reference/android/content/Loader.html

读到指出“他们应该监控数据并根据变化采取行动”——这听起来不错,但实际上是如何完成的并不明显(不过我正在考虑数据库表)

介绍

这应该如何改变我的应用程序的外观?我应该在活动创建后的一定时间后放置一个加载旋转的东西(我不确定名字,以前从来不需要它们)吗?所以片段是空白的,但是如果 X 时间过去了没有加载器报告,我会显示一个刺的东西?

其他操作

加载程序显然对更新没有用,仅它们的名字就说明了这么多,所以任何讨厌的更新等都必须由我自己的系统包装,以便将工作分流到工作线程。这进一步让我想知道为什么我需要装载机?

我认为我的答案是 某种包装器(在某种程度上,内容提供者或其他方式)在工作线程上执行操作将意味着升级发生在该线程上,这解决了问题,因为......好吧,那不在主线程。

如果我自己编写,那么我可以(如果我想)确保查询以特定顺序发生,使用我自己的数据结构(而不​​是Bundles),似乎我有更好的控制。

我真正在寻找什么

讨论,我发现当一个人知道为什么事情是这样时,一个人犯的错误更少并且通常更有信心,我相信这是有原因Loader的,并且会有一些所有Android都适合的模式,我想知道这是为什么。

例子:

适配器(对于 ListViews)当大多数时候(根据我的经验,我敢说)它是子类时,如何跟踪行(插入)为什么必须指定默认样式(以及为什么 ArrayAdapter 使用 toString)并不是很明显,阅读源代码可以让人们了解适配器实际上必须做什么,然后我挑战自己“我能想出一个(更好的)满足这些要求的系统吗”,通常(并且希望)我对此的回答集中在它实际上是如何实现的完毕。

从而跨越了“Hello World Gulf”。

我期待阅读有关此事的答案和任何链接的文本墙。

4

1 回答 1

0

你不应该直接使用 Loaders,而应该使用 LoaderManager

于 2013-09-10T10:32:05.890 回答