首页 > 代码库 > LoaderManager使用具体解释(四)---实例:AppListLoader

LoaderManager使用具体解释(四)---实例:AppListLoader

实例:AppListLoader

这篇文章将是我的第四篇,也就是最后一篇该系列的文章。请在评论里面告诉我他们是否实用。前面几篇文章的链接例如以下:

一:Loaders之前世界
二:了解LoaderManager
三:实现Loaders
四:实例:AppListLoader

应大众的要求。我已经写了一个演示样例应用演示怎样正确的实现一个自己定义Loader。应用名称为:AppListLoader,它是一个演示应用。能够查询并列出你的Android设备上全部已安装的应用程序。

应用已经改动。又一次构建(没有bug)了API Demos里面提供的LoaderCustom.java样例。该应用使用AppListLoader(AsyncTaskLoader的子类)来查询数据,使用LoaderManager来管理Activity/Fragment声明周期中Loader的内容。

技术分享

AppListLoader注冊了两个BroadcastReceiver用来监听系统范围内的会影响底层数据源的广播(译者注:应用的安装和卸载都会发送广播,而这两个操作都会影响我们须要监听的数据源。所以这句话是这个意思。翻译起来好麻烦)。新安装、更新、移除应用由InstalledAppObserver来负责监听。本地化改变(locale changed)由SystemLocaleObserver负责监听。比如,当用户将语言从英语改为西班牙语,SystemLocaleObserver就会检測到。并通知AppListLoader又一次查询数据。这样程序就行显示每一个应用的西班牙语名称了(假设每一个应用都提供了相应的西班牙语名称)。点击“Change language”button,然后观察Loader的对于该事件的无缝响应(非常酷,不是吗。!

)。


当Loader/LoaderManager有关的事件发生时,Log信息会在Logcat中显示出来。所以当分析Logcat时,记得确保程序正在执行。

希望它对你更好的了解Loader和LoaderManager协同工作关系,而且理解Activity/Fragment生命周期对它们的影响。

能够使用应用名称“com.adp.loadercustom”来过滤,以得到更好的结果。


技术分享

能够通过点击以下的链接从Google Play下载该应用:
技术分享

源码在GitHub上面可用。下载。导入到Eclipse里面去。做不论什么你想做的改动。


假设这一系列文章实用,请在以下留下你的评论让我知道。一如既往的。请自由提问。

译者注:
两天零碎的时间翻译了四篇文章,收获非常大,同一时候感觉Loader和LoaderManager并非想象的那么难。文章的质量非常高,假设有朋友知道更好的Android有关的文章,请一定要让我知道,独乐乐不如众乐乐。

LoaderManager使用具体解释(四)---实例:AppListLoader