装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性:
它们对每个Activity和Fragment都有效。
他们提供了异步加载数据的能力。
它们监视数据源的一将一动并在内容改变时传送新的结果。
当由于配置改变而被重新创建后,它们自动重连到上一个加载器的游标,所以不必重新查询数据。
装载器API概述
在使用装载器时,会涉及很多类和接口们,我们在下表中对它们总结一下:
Class/Interface
说明
LoaderManager
一个抽像类,关联到一个Activity或Fragment,管理一个或多个装载器的实例。这帮助一个应用管理那些与Activity或Fragment的生命周期相关的长时间运行的的操作。最常见的方式是与一个CursorLoader一起使用,然而应用是可以随便写它们自己的装载器以加载其它类型的数据。
每个activity或fragment只有一个LoaderManager。但是一个LoaderManager可以拥有多个装载器。
LoaderManager.LoaderCallbacks
一个用于客户端与LoaderManager交互的回调接口。例如,你使用回调方法onCreateLoader()来创建一个新的装载器。
Loader(装载器)
一个执行异步数据加载的抽象类。它是加载器的基类。你可以使用典型的CursorLoader,但是你也可以实现你自己的子类。一旦装载器被激活,它们将监视它们的数据源并且在数据改变时发送新的结果。
AsyncTaskLoader
提供一个AsyncTask来执行异步加载工作的抽象类。
CursorLoader
AsyncTaskLoader的子类,它查询ContentResolver然后返回一个Cursor。这个类为查询cursor以标准的方式实现了装载器的协议,它的游标查询是通过AsyncTaskLoader在后台线程中执行,从而不会阻塞界面。使用这个装载器是从一个ContentProvider异步加载数据的最好方式。相比之下,通过fragment或activity的API来执行一个被管理的查询就不行了。
上面所列的类和接口们是你在你的应用中要实现装载器时的核心组件。你的每个装载器并不一定需要所有的组件,但是你总是需要引用LoaderManager来初始化一个装载器。后面的章节将向你展示如何使用这些类和接口们。
http://www.open-open.com/home/space-2869-do-blog-id-5945.html
分享到:
相关推荐
一个异步装载实例,loader装载数据,数据库更新数据后,自动更新前台聊天界面操作.做聊天软件的可以参考,实现了聊天界面与数据交互.
android loader 的测试demo 包括使用android提供的 cursorLoader 和 自定义的 AppLoader 两种
基于RxJava Observable封装的一个Android Loader
主要介绍了Android Loader详细介绍及实例代码的相关资料,需要的朋友可以参考下
下面小编就为大家分享一篇Android Loader的使用以及手机通讯录的获取方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Android 3DS MD2 加载
android loader的使用android loader的使用android loader的使用android loader的使用
Android-Skin-Loader > 联系我 : fengjun.dev@gmail.com > > 个人博客 : http://allenfeng.com/ > > 一个通过动态加载本地皮肤包进行换肤的皮肤框架 更新日志 导入到Android Studio,使用gradle构建皮肤包(见7. ...
GalleryActivity读取本地相册及照片 能够按相册区分 并选取照片 1 读取本地照片 2 查看本地的相册,以及其中照片信息 3 选择一个相册,查看其中照片 4 选取照片进行操作或者上传 5查看自己选择的照片 ...
androidx loader 资源包
A lightweight API to add syntax sugar to Android Loader API Why SugarLoader ? Google's Loader API is great, as it provides a robust way to load data into a fragment or an activity, with no risk to ...
Android library for downloading, saving/caching and retrieving any type of files ( image, video, pdf, apk etc ) easily. Download Gradle: repositories { mavenCentral() maven { url '...
1、这是一个Android3.0新API Loader的例子; 2、采用的是自定义的Loader,包含异步加载网络图片等;
Get accustomed to the use of the Android Loader construct to deliver up-to-date results In Detail Asynchronous programming has acquired immense importance in Android programming, especially when we ...
Android 中 Loader 及 LoaderManager 的使用
当然也有很多的开源框架中也可以处理这些问题,但是我个人认为Android提供的Loader机制绝对是首选。 Loader的出现以一种更友好的方式改善了用户体验。主要优点概括: 1. 与Activity和Fragment完美融合; 2. 异步加载...
Asynchronous programming has acquired immense importance in Android programming, especially when we want to make ...Get accustomed to the use of the Android Loader construct to deliver up-to-date results
如何在Android中使用Loader对象的示例 使用LoaderManager初始化加载器(第三个参数,您的回调) 在createLoader中-返回Loader类 loader类本身中的内容-扩展Loader类并在后台方法中实现您的网络代码 覆盖Loader类中...