LoaderManager加载器初识
来源:互联网 发布:淘宝仿网红家衣服质量 编辑:程序博客网 时间:2024/06/07 17:21
LoaderManager可以做什么
LoaderManager,相当于一个监听器(观察者),它会实时监听底层数据的变化,一旦数据发生变化,就会通知loader,然后就可以做相应的处理。它的特点是嵌入在每一个Activity或者Fragment中的,且只有一个,我们可以不必关心它何时开启或者关闭,只要对数据进行相应的处理就好了,十分地方便。它在一个单独线程载入数据,监测底层数据源,当探测到有改变时就更新或者重新查询。相当于进入界面的时候就开启了一个AsyncTask去查询我们需要的数据。
比如说,我们有个界面是Android设备上所有已安装的应用程序,然后我们监听系统语言改变和安装卸载改变的广播,一旦广播收到消息,我们就通知界面的loader去查询更新。
LoaderManager概念
- 每个Activity或者Fragment都有唯一的一个LoaderManager实例,用来启动、停止、保持、重启、关闭它的Loaders。
- 通常这些事件通过主要的Activity/Fragment声明周期事件来触发,而不是手动(当然也可以手动调用)。
- Loader的子类会异步载入(译者注:另外再开一个线程,就叫异步了。)数据,所以使用LoaderManager永远不会产生阻塞UI线程的情况。
- 当配置变化时,它会保持它里面的Loader们的状态,所以并不需要重新查询数据。(比如切换横竖屏)
- 当Loader的数据源改变,LoaderManager将会从对应的Loader上面接收到一个新的同步载入数据,并将更新数据返回给客户端。
- 任何Loader将处于三种状态之中,已启动、已停止、重置。处于已停止状态的Loader将会继续监听数据改变,但是不会将结果返回给客户端。在已停止状态,Loader可能被启动或者重启。
- 当Loader处于重置状态时,将不会执行新的载入操作,也不会发送新的结果集,也不会检测数据变化。
实现LoaderManager.LoaderCallbacks接口
public class SampleActivity extends Activity implements LoaderManager.LoaderCallbacks<D> { public Loader<D> onCreateLoader(int id, Bundle args) { ... } public void onLoadFinished(Loader<D> loader, D data) { ... } public void onLoaderReset(Loader<D> loader) { ... } /* ... */}
onCreateLoader是一个工厂方法,用来返回一个新的Loader。LoaderManager将会在它第一次创建Loader的时候调用该方法。
onLoadFinished方法将在Loader创建完毕的时候自动调用。
onLoadReset该方法让你可以从就的数据中移除不再有用的数据。
参考
LoaderManager使用详解(一)—没有Loader之前的世界
LoaderManager使用详解(二)—了解LoaderManager
LoaderManager使用详解(三)—实现Loaders
LoaderManager使用详解(四)—实例:AppListLoader
0 0
- LoaderManager加载器初识
- Android加载器LoaderManager.loaderCallbacks
- Android加载器LoaderManager.LoaderCallbacks的使用
- Android加载器LoaderManager.LoaderCallbacks的使用
- Android加载器LoaderManager.LoaderCallbacks的使用
- android 加载器loadermanager.initLoader方法的注意事项
- 利用LoaderManager加载相册图片
- LoaderManager.onLoaderFinish加载了两次
- LoaderManager
- LoaderManager
- 安卓LoaderManager异步加载数据库
- 通过 LoaderManager + CursorLoader加载通讯录中所有人
- 通过异步任务LoaderManager加载Cursor游标
- andoird---loadermanager和contentprovider结合,加载数据
- Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
- Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
- Android_Loader_使用LoaderManager管理Loader实现异步动态加载数据
- 【Android】使用LoaderManager管理Loader实现异步动态加载数据
- MySQL视图和事务
- 将数组的元素逆序打印(用指针实现)
- 如何修改项目加载包默认的node_modules路径
- google基本语法
- angular第二讲
- LoaderManager加载器初识
- 猴子吃桃子问题
- 团体程序设计天梯赛L2-023 图着色问题
- 面向对象几点注意
- web文件上传大小限制
- BZOJ4584: [Apio2016]赛艇 DP
- MyBatis配置文件解析
- 山东省第二届ACM省赛 The Android University ACM Team Selection Contest
- HOG特征计算