LoaderManager 是做啥的?
Posted
技术标签:
【中文标题】LoaderManager 是做啥的?【英文标题】:What does LoaderManager do?LoaderManager 是做什么的? 【发布时间】:2011-11-01 17:38:06 【问题描述】:我想了解LoaderManager
做了什么。任何人都可以分享一个例子吗?创建游标时必须使用它们吗?如果不是我应该如何使用?非常感谢一个简单的例子。
【问题讨论】:
在android documentation中有一篇关于Loaders
的好文章。那里有两个示例:LoaderCursor 和 LoaderThrottle。
Understanding the LoaderManager
(part 2) 是一个值得学习的好帖子。
【参考方案1】:
简单地说,LoaderManager
负责管理与Activity
或Fragment
关联的一个或多个Loader
s。每个Activity
和每个Fragment
都有一个LoaderManager
实例,负责启动、停止、保留、重新启动和销毁其Loader
s。
LoaderManager
上有一篇相当广泛和深入的博文...在这里查看:
Understanding the LoaderManager (part 2)
【讨论】:
【参考方案2】:简单来说:
LoaderManager
在后台加载数据并寻找其中的变化。它提供了一个简单的类似 Api 的结构,我们不需要手动查看和观察数据。
示例:
在<android-sdk>\samples
文件夹中搜索LoaderCursor.java
和LoaderThrottle.java
这是使用CursorLoader
类的示例
以防万一有人正在寻找LoaderManager
的示例,自定义AsyncTaskLoader
查找here。
【讨论】:
我不会使用Loader
s 来执行网络请求。更好的解决方案是让服务定期向服务器请求数据,然后将其插入ContentProvider
,然后使用CursorLoader
查询数据。我相信这是一个更好的解决方案,因为 (1) 如果您以这种方式建模,很容易为您的应用程序实现“离线模式”,并且 (2) Loader
s 通常特定于单个 Activity
或Fragment
,因此如果您希望在Activity
之外接收后台通知,则很难扩展此设计。
确实你是对的,但就我而言,Loader 看起来是我的应用程序的最佳可用选项@这一点,为什么因为我查询的数据是股票市场数据和我不认为让它离线是个好主意。数据缓存会更快,但它不符合我的想法,如何?
@NikitPatel 我不确定你在写什么样的应用程序,但是当应用程序因为没有互联网连接而无法运行时,我总是很恼火。使用Loader
也会消耗更多电池电量,因为您必须每次在创建Activity
时加载数据。以上是关于LoaderManager 是做啥的?的主要内容,如果未能解决你的问题,请参考以下文章
sqlserver management studio是做啥的 跟sqlserver有啥区别啊
谁知道Windows里任务管理器中各项后台进程都各是做啥的?