LoaderManager是做什么的?

13

我试图理解LoaderManager是做什么的。有人能提供一个相关示例吗?我创建游标时是否必须使用它们?如果不是,应该如何使用?非常感谢提供简单的示例。


1
Android文档中有一篇关于Loaders的好文章。那里有两个示例:LoaderCursorLoaderThrottle - inazaruk
1
《理解LoaderManager(第二部分)》是一篇很棒的文章,可以从中学到很多。 - Adrian Monk
2个回答

6
简单来说,LoaderManager 负责管理与 ActivityFragment 相关联的一个或多个 Loader。每个 Activity 和每个 Fragment 都恰好有一个 LoaderManager 实例负责启动、停止、保留、重启和销毁其 Loader
关于 LoaderManager,有一篇非常详尽深入的博客文章...... 在这里查看:

理解 LoaderManager(第二部分)


1

简单来说:

LoaderManager 在后台加载数据并监测其变化。它提供了一个简单的 API 结构,我们不需要手动查看和观察数据。

示例:

<android-sdk>\samples 文件夹中搜索 LoaderCursor.javaLoaderThrottle.java,这是使用 CursorLoader 类的两个示例。

如果有人正在寻找自定义 AsyncTaskLoaderLoaderManager 示例,请看 这里


2
我建议不要使用Loader来执行Web请求。更好的解决方案是定期从服务器请求数据并将其插入到ContentProvider中,然后使用CursorLoader查询数据。我认为这是一个更好的解决方案,因为(1)如果您以这种方式建模,很容易为应用程序实现“离线模式”,(2)Loader通常特定于单个ActivityFragment,因此如果您希望在Activity之外接收后台通知,则难以扩展此设计。 - Alex Lockwood
2
确实,你说得对。但就我而言,在这一点上Loader似乎是我应用程序中最好的选择。为什么呢?因为我查询的数据是股票市场数据,我认为将其离线不是一个好主意。缓存数据会更快,但它并不符合我的想法,为什么呢? - Nixit Patel
@NikitPatel 我不确定你正在编写什么类型的应用程序,但当应用程序因为没有网络连接而无法工作时,我总是感到很烦恼。使用“Loader”也会更耗电,因为每次创建“Activity”时都必须加载数据。 - Alex Lockwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接