Loader 浅析

文中提及的 Loader 为 support v4 的 Loader。

简介

Loader 机制在 android 3.0 后加入 android framework,其目的主要在于方便在 Activity 和 Fragment 中加载异步数据。

Loader 本身不具备异步加载的能力,真正赋予了异步加载能力的是 AsyncTaskLoader,而且 Loader 基本会跟 LoaderManager 绑定一起使用,如独立使用 Loader,意义并不大,因为真正将 Loader 和 Activtiy、Fragment 的生命周期关联的是 LoaderManager。所以说,Loader 本身不具备太多能力,基本是负责对 Loader 状态标记的修改以及调用部分相关的回调。

Loader 的简单用法可以查看此链接:Loaders(请自备梯子)

Loader 的结构

列一张 Loader 的类结构图,权当了解 Loader 中有哪些方法。

Loader Structure

ForceLoadContentObserver 继承于 ContentObserver,主要用于 CursorLoader 监听 Cursor 的数据变化,一般来说不需要用到它。

OnLoadCompleteListener,Loader 完成加载时会回调 onLoadComplete(Loader, D) 方法。一般情况下我们不需要关心这个接口,该接口主要是给 LoaderManager 使用。

OnLoadCanceledListener,Loader 完成加载前被取消了会回调 onLoadCanceled(Loader) 方法,同 OnLoadCompleteListener 一样,我们也不需要关心这个接口。

原本打算介绍部分方法的用法,但是单从 Loader 来说并无太大意义,这里不进行叙述,之后的 LoaderManager、AsyncTaskLoader、CursorLoader 相关文章再带入相关知识。

Loader 的流程

结合 AsyncTaskLoader、LoaderManager 的源码,画了一个最简单的 Loader 应有的流程,这里只需了解一下。

Loader Simple Flow

总结

_(:зゝ∠)_ Loader 还真的没什么内容可写,不过可以帮助我们后面理解及分析 LoaderManager、AsyncTaskLoader、CursorLoader,所以还是有点必要了解的。