我是靠谱客的博主 自信钥匙,最近开发中收集的这篇文章主要介绍Android之cursorLoader进行数据异步加载,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

欢迎关注WX公众号:
门徒与思索

Android之cursorLoader进行数据异步加载

文章链接:http://blog.csdn.net/qq_16628781/article/details/73612568

知识点

  1. cursorloader和cursormanager简介;
  2. cursorloader进行数据异步加载;
  3. onCreateLoader()参数2的介绍;
  4. 新名词记录{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进行数据异步加载的全部内容,希望文章能够帮你解决Android之cursorLoader进行数据异步加载所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部