Android加载器Loader使用

本文介绍了Android加载器Loader和加载管理器LoaderManager的使用。Loader提供异步数据加载,并在数据变化时自动更新,LoaderManager则负责管理Loader的生命周期。文章通过实例展示了如何使用Loader加载数据库数据,以及实现ContentProvider事务操作。
摘要由CSDN通过智能技术生成

假设我们现在需要读取数据库中的联系人,如果联系人很多的话,我们必须将查询数据库的操作逻辑放在子线程中,不然会导致UI线程阻塞,然后再及时将查询到的数据告知显示界面让其刷新.

其次,如果联系人数据库中数据变化了,我们还需要通过观察者模式的ContentObserver类中的onChange方法来监听相应的数据库改变,然后再重新查询,排序,刷新等等(这里不对ContentObserver内容观察者做解释,有兴趣的朋友可以自己查资料)


上面思路也能实现我们想要的结果,但是使用加载器Loader和加载管理器LoaderManager能够更加方便实现.


这是在Android3.0中才引入了加载器/装载器(Loader)的功能,这使它很容易在Activity或Fragment中使用异步的方式加载数据。装载器Loader的特点如下:

1.  装载器对于每个Activity和Fagment都是有效的;

2.  装载器提供异步数据加载的能力;

3.  装载器监视数据资源并且当内容改变时发送新的结果;

4.  在配置改变后重建的时候,装载器自动的重连最后的装载器游标,因此,不需要重新查询数据。


LoaderManager就是加载器的管理器,一个LoaderManager可以管理一个或多个Loader,一个Activity或者Fragment只能有一个LoadManager。LoaderManager管理Loader的初始化,重启和销毁操作。

从官网就可以看出它包含的方法有

Image(1)

对应的就是这几个操作。

 

initLoader是初始化一个加载器,它的第三个参数是一个LoaderCallbacks<D>接口,LoaderManager的initLoader是不做任何事情的,它只绑定了一个LoaderCallbacks<D>,具体的创建Loader的事情是由这个callback来做的。

LoaderCallbacks<D>接口需要实现的三个方法:

Image(2)

在loader创建loader的时候会调用onCreateLoader,然后当load数据结束的时候(第一次读取数据或者数据有改变的时候load数据)会调用onLoadFinished,而onLoaderReset只有在destory一个loader的时候才有可能调用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值