Android之cursorLoader进行数据异步加载
来源:互联网 发布:万网单域名控制台登录 编辑:程序博客网 时间:2024/05/18 01:25
Android之cursorLoader进行数据异步加载
文章链接:http://blog.csdn.net/qq_16628781/article/details/73612568
知识点
- cursorloader和cursormanager简介;
- cursorloader进行数据异步加载;
- onCreateLoader()参数2的介绍;
- 新名词记录{cursorloader和cursormanager}
概述
UI中不能做复杂的事情,所以我们很多复杂的事情,会另开一个工作线程来操作,然后才更新到UI上去。这里面有很多方法,thread,runable ,intentservice,AsyncTask…..其实这里我们主要关注的是,工作线程和UI线程如何进行交互的操作。handler无疑是我们用得最多的了,这里也不去叙述了。
我们这里要讲的是另一种更加高效的异步操作的方法,例如我们去获取手机的联系人,通话记录或者是其它任何数据。Android的SDK里面,为我们提供了一个更加简单高效的API,那就是cursorloader了。
LoaderManager对cursorloader的管理
讲到cursorloader,就必须要讲到cursorloader的“管理人员”,因为cursorloader可以创建很多个,我们可以使用一个int类型的id来区分。那么LoaderManager的作用就是根据id来管理每一个cursorloader的对象了。例如初始化,重置,得到cursorloader对象等等的作用。下面我们先来看看如何初始化一个cursorloader对象。
代码如下:
cursorloader的异步操作
这里我也不多讲,只要大家记住几点:
1. 实现LoaderManager.LoaderCallbacks类,T是代表你希望返回的数据是咋样的,可以是string,boolean等基本数据类型,也可以是cursor等等。
2. 当cursorLoader被初始化之后,会首先执行onCreateLoader()方法,执行完之后,会返回T类型的数据。
3. 当onCreateLoader()方法执行完毕,就该执行onLoadFinished()方法了,在这里你就可以进行数据的获取了。
4. 其它的一些方法,比如loader对象被重置了,就会执行onLoaderReset()方法。
注意:onCreateLoader()相当于一个被观察者,onLoadFinished()相当于一个观察者,只要被观察者的数据有改变,那么观察者就能得到通知,并进行相应的响应。
如何使用
这里我是拿到我手机通话记录,一共有3千多条,只要打印20条意思下就好了。
下面我们直接来看代码,在代码中已经说得很清楚了。各位仔细看。
其中在loadInBackground()方法里面操作的CallLogCursor类如下:
最后,运行的结果如下:
可以看到,传入的bundle,第一行的打印输出正是我们传入的数据。所以bundle主要是这样用的。
总结
说白了,感觉cursorloader就是观察者和被观察者之间的关系,只是说Google将UI和工作线程交互的工作做好了,我们直接响应就OK了。这就极大的方便了我们开发的工作了。
以上就是所有内容,如有任何疑问,请及时与我联系,谢谢!
- Android之cursorLoader进行数据异步加载
- 使用CursorLoader异步加载数据
- 使用CursorLoader异步加载数据
- Android ListView 正在加载 异步载入数据 CursorLoader 例子
- Android官方开发文档Training系列课程中文版:后台加载数据之使用CursorLoader进行查询
- CursorLoader异步加载
- CursorLoader与ContentProvider结合,实现异步加载
- CursorLoader异步加载信鸽推送消息
- Android官方开发文档Training系列课程中文版:后台加载数据之处理CursorLoader的查询结果
- Android之异步任务加载网络数据
- Android 使用Android-Universal-Image-Loader进行异步数据加载
- Android使用CursorLoader加载手机联系人
- Loader之CursorLoader的使用——加载系统短信的数据(1)
- Android之数据存储----使用LoaderManager异步加载数据库
- Android 异步加载数据 AsyncTask
- Android中异步加载数据
- Android异步加载数据---Loader
- Android Loader 异步加载数据
- 文件异步上传
- NYOJ:46-最少乘法次数
- 从高考到码农,毕业了
- Laravel安装配置
- NYOJ:48-小明的调查作业
- Android之cursorLoader进行数据异步加载
- NYOJ:49-开心的小明
- 链表面试题(一):逆序打印链表、无头链表删除插入节点、约瑟夫环、逆置单链表
- 222.map4-百度地图添加覆盖物
- NYOJ:50-爱摘苹果的小明
- 矩阵乘法编写,从文件输入输出
- pandas value_couts遇到的问题
- PL/SQL面向过程语言
- 关于树状数组区间修改和查询详解