`
iaiai
  • 浏览: 2204974 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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”按钮,然后观察Loader的对于该事件的无缝响应(很酷,不是吗!!)。

当Loader/LoaderManager有关的事件发生时,Log信息会在Logcat中显示出来。所以当分析Logcat时,记得确保程序正在运行。希望它对你更好的了解Loader和LoaderManager协同工作关系,并且理解Activity/Fragment生命周期对它们的影响。可以使用应用名称“com.adp.loadercustom”来过滤,以得到更好的结果。

可以通过点击下面的链接从Google Play下载该应用:

  • 大小: 270.1 KB
  • 大小: 543.2 KB
  • 大小: 4 KB
分享到:
评论

相关推荐

    Android 中 Loader 及 LoaderManager 的使用

    - 使用LoaderManager初始化Loader:在Activity或Fragment中,通过getLoaderManager().initLoader()方法启动Loader,传入Loader的ID和LoaderCallbacks实例。 - 实现LoaderCallbacks接口:这个接口定义了三个方法,...

    android支持包:android-support-v4

    `android-support-v4`中的LoaderManager允许开发者在API级别7及以上的设备上使用Loader,确保数据的实时性和准确性,同时避免在配置改变时丢失数据。 **AppCompat库** `android-support-v4`库常常与AppCompat库...

    android-support-v4/v7 26 27 28三个版本下载

    - `LoaderManager`是异步数据加载的管理器,可以避免在配置改变时重新加载数据,提高了应用的响应性和用户体验。 2. **appcompat-v7库**: - `appcompat-v7`库的主要目的是为了让开发者能够在低版本Android设备上...

    老罗android视频开发源码和ppt--LoaderManager异步加载数据库.rar

    老罗的视频开发源码和PPT将详细解析这一过程,通过实例代码和讲解,帮助开发者掌握LoaderManager的使用技巧,以及如何将其应用于数据库异步加载。通过学习这些材料,开发者不仅能理解LoaderManager的基本用法,还能...

    Android下使用loaderManager

    1. 在Activity或Fragment中声明LoaderManager和LoaderCallbacks实例。 2. 在onActivityCreated或onCreate方法中,通过getLoaderManager().initLoader()启动Loader。 3. 实现LoaderCallbacks接口,提供CursorLoader的...

    Android中SQLite应用详解

    - 使用LoaderManager和CursorLoader实现异步加载数据库数据到ListView或RecyclerView。 9. 数据备份与恢复: - 使用`sqlite3`命令行工具或Android的`SQLiteAssetHelper`库进行数据库导入导出。 - 应用升级时,...

    老罗14.2 LoaderManager的使用二源码

    1. 使用getLoaderManager()方法获取LoaderManager实例。 2. 调用initLoader()或restartLoader(),传入Loader的标识符和LoaderCallbacks接口实现。LoaderCallbacks包含三个回调方法:onCreateLoader()、...

    Android高级应用源码-Android字母排序 类似通讯录字母检索.zip

    - 在处理大量数据时,应考虑性能优化,例如使用`ViewHolder`模式减少视图查找的时间,以及合理使用缓存和数据加载策略。 综上所述,这个源码可能包含了以上所有技术的实现,提供了一个完整的通讯录风格的字母排序...

    安卓生词本源码sqlite

    - 使用LoaderManager.initLoader()初始化Loader,LoaderManager.loadFinished()监听数据加载完成。 7. RecyclerView和Adapter: - 展示生词列表通常会用到RecyclerView,它是一个高效、可滚动的视图,用于显示...

    Android通讯录附搜索及字母索引Demo

    - Android系统使用SQLite作为内置的轻量级数据库,用于存储应用数据,如通讯录中的联系人信息。开发者需要了解如何创建数据库、表结构以及执行CRUD(创建、读取、更新、删除)操作。 2. **ContentProvider**: - ...

    安卓listview相关相关-具有系统通讯录的功能将手机系统联系人以listview显示点击进入查看联系人信息拨打电话以及编辑联系人.rar

    - 在这个项目中,为了获取系统通讯录,开发者可能会使用`ContentResolver`查询`ContactsContract`表,然后用返回的`Cursor`对象创建`CursorAdapter`。 - `LoaderManager`是用于异步加载数据的框架,可以管理`...

    大学androidDemo主要代码

    - CursorLoader和LoaderManager:异步加载和更新联系人列表。 - Intent和IntentFilter:启动系统联系人选择器,共享数据。 - 数据库操作:可能涉及SQLite数据库的创建、查询、插入和更新。 这些Demo涵盖了...

    TestMusic(简易音乐播放器)

    - CursorLoader和LoaderManager:为了在不阻塞主线程的情况下加载大量数据,如音乐库,开发者可能利用CursorLoader和LoaderManager。 5. **通知栏控制**: - Notification API:音乐播放器通常会在通知栏提供控制...

    google原始Launcher3源代码

    - `AppWidgetHost`:管理小部件的实例,处理小部件的添加、删除和更新。 5. **触摸事件处理**: - `DragLayer`:处理触摸事件和拖放操作,允许用户自由移动图标和小部件。 - `DragController`:控制拖放行为,...

    Android代码-FileExplorer

    - 处理API级别的差异,如在低版本Android中使用`LoaderManager`。 10. **测试与调试**: - 使用单元测试(如`JUnit`)和集成测试确保功能正确性。 - 利用`Android Profiler`进行性能分析和内存泄漏检测。 综上...

    Android-基于RxJavaObservable封装的一个AndroidLoader

    在"Android-基于RxJavaObservable封装的一个Android Loader"项目中,开发者可能实现了这样一个功能:使用RxJava的Observable来封装Android的Loader接口,以提供一个统一且易于使用的数据加载API。这样的封装能够利用...

    android sqlite绑定城市三级联包含三级城市级联mysql数据源,sql语句

    - 使用Loader框架:Android的`LoaderManager`可以帮助我们在后台异步加载数据,防止阻塞UI线程。 - 数据缓存策略:合理使用内存缓存和文件缓存,提高数据读取速度。 综上所述,实现这个功能需要掌握Android的...

    通过sqlite数据库实现的曾珊盖查的通讯录

    - 查询:使用`SELECT`语句获取联系人列表,可以使用`WHERE`子句进行条件查询,如`SELECT * FROM Contacts WHERE Name LIKE '张%'`,查找所有名字以“张”开头的联系人。 3. **Android与SQLite交互**: - ...

    LoaderManager查询联系人与图片

    1. 在Activity或Fragment中初始化LoaderManager,通过getLoaderManager()方法获取LoaderManager实例。 2. 实现LoaderCallbacks接口,这个接口包含三个方法:onCreateLoader(), onLoadFinished()和onLoaderReset()。...

    [源码]Android开发 漂亮底部Tab栏 标签 选项卡制作教程

    例如,使用`LoaderManager`或异步任务加载网络数据。 8. **生命周期管理**: - 当Fragment被隐藏和显示时,需要正确处理其生命周期方法,如`onResume()`和`onPause()`,确保数据和UI状态的正确保存和恢复。 9. **...

Global site tag (gtag.js) - Google Analytics