CursorLoader简单总结

Loader在Android3.0引进,它让异步加载数据变得容易。

一、特征:

    1、在Activity、Fragment中都可以使用

    2、Loader可以提供异步加载数据

    3、监视数据源的变化,当数据源发生变化的时候,会传递新的数据

    4、当loader重建的时候,会自动链接到最后一个Loader的cursor数据上,而不去进行重新查找。

二、在app中使用Loader的时候,可能使用到的类和接口。

    1、LoaderManager:这是一个抽象类,关联在Activity、Fragment上,管理一个或多个Loader,帮助app管理耗时操作在Activity、Fragment的生命周期过程中。最常和CursorLoader一块使用。每一个Activity或Fragment只有一个FragmentManager对象。一个FragmentManager可以管理多个Loader。

   2、LoaderManager.LoaderCallbacks:和LoaderManger关联在一起的回调接口。onCreateLoader()会调方法,创建Loader对象。

   3、Loader:抽象类,异步加载数据。主要使用CursorLoader。监视数据源的变化,当数据源发生改变的时候,传递新的数据内容。

   4、AsyncTaskLoader:抽象的,提供了一个AsyncTask

   5、CursorLoader:是AsyncTaskLoader的子类,使用ContentResolver查找数据,返回Cursor。加载Cursor数据的时候操作在非UI线程,so,不会阻塞UI线程。该类是查找ContentProvider提供出来的数据的最好的方式。

   6、LoaderManager:用它实例化Loader--》cursorLoader

三、使用Loader的步骤

   1、Activity、Fragment实现LoaderCallbacks回调接口。

   2、创建LoaderManager的实例

        getLoaderManager().initLoader(参数1:实例化的Loader的id, 参数2:传递参数onCreateLoader()方法的第二个参数, 参数3:回调接口);

   3、CursorLoader在后台加载数据--》ContentProvider

   4、LoaderManager.LoaderCallbacks实现

   5、需要展示数据的:SimpleCursorAdapter

   6、数据源:ContentProvider

四、注意事项

   1、在一个Activity、Fragment中,只有一个LoaderManager实例。

   2、需要在Activity的onCraete方法中或者是Fragment的onActivityCreated方法中实例化Loader对象:

        getLoaderManager().initLoader(0, null, this);

       参数:参数1:给Loader指定id,唯一;参数2:可选项;参数3:LoaderManager.LoaderCallbacks实例。(此处让Activity实现了LoaderManager.LoaderCallbacks接口)

   3、 initLoader()方法调用后,有两种结果:

      1)指定id的Loader已经存在,重用。

      2)不存在,创建:onCreateLoader()

   4、让Fragment可使用菜单

        setHasOptionsMenu(true);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值