Android Loader
Loader在 Android 3.0中引入,它使得activity和fragment中数据的异步加载更容易。loaders有以下这些特性
- 在每个Activity和Fragment中都可以使用
- 可以异步加载数据
- 监控数据源,当数据源内容改变时,他能加载新数据
- 当配置被改变时,他们能自动重联到上一个cuesor处
Loader API简介
类/接口 | 简介 |
---|---|
LoaderManager | LoaderManager是一个抽象类,关联一个Activity或者Fragment,可以管理一个或者多个Loader实例。在Activity和Fragment的生命周期中,这帮助了应用管理长时间运行的操作。最常用的方式是和CursorLoader一起使用,应用也可以使用自己的loaders加载其他类型的数据。一个Activity或者Fragment只能有一个LoaderManager,但是一个Loadermanager可以有多个loaders |
LoaderManager.LoaderCallbacks | 连接客户端和LoaderManger一个回调接口,例如当创建一个新的loader,onCraetLoader()会被回调 |
Loader | 一个执行异步加载的抽象类,是loader类的基类,你也可以使用典型的CursorLoader,但是你也可以实现自己的子类,当loader激活时,他们应该监视数据源,当数据源内容发生变化时,发送新的结果 |
CursorLoader | AsyncTaskLoader的子类,它查询ContentResolver 返回Cursor类。这个类为查询cursor以标准的方式实现了装载器的协议,它的游标查询是通过AsyncTaskLoader在后台线程中执行,从而不会阻塞界面。使用这个装载器是从一个ContentProvider异步加载数据的最好方式。相比之下,通过fragment或activity的API来执行一个被管理的查询就不行了。 |
上表中,这些类和接口是你在使用Loader的必要组件,你可以不全部使用,但是你需要一个LoaderManager来初始化loader