android developer tiny share-20160927

来源:互联网 发布:迅龙数据恢复 编辑:程序博客网 时间:2024/06/15 19:09

今天开始新的一章,fragment讲完了,开始讲Loader,加载器,用于异步加载数据的api。


加载器

Android 3.0 中引入了加载器,支持轻松在 Activity 或片段中异步加载数据。 加载器具有以下特征:

  • 可用于每个 Activity 和 Fragment。
  • 支持异步加载数据。
  • 监控其数据源并在内容变化时传递新结果。
  • 在某一配置更改后重建加载器时,会自动重新连接上一个加载器的 Cursor。 因此,它们无需重新查询其数据。
Loader API 摘要
在应用中使用加载器时,可能会涉及到多个类和接口。 下表汇总了这些类和接口:

类/接口描述LoaderManager一种与 Activity 或 Fragment 相关联的的抽象类,用于管理一个或多个 Loader 实例。 这有助于应用管理与 Activity 或 Fragment 生命周期相关联的、运行时间较长的操作。它最常见的用法是与 CursorLoader 一起使用,但应用可自由写入其自己的加载器,用于加载其他类型的数据。 

每个 Activity 或片段中只有一个 LoaderManager。但一个 LoaderManager 可以有多个加载器。LoaderManager.LoaderCallbacks一种回调接口,用于客户端与 LoaderManager 进行交互。例如,您可使用 onCreateLoader() 回调方法创建新的加载器。Loader一种执行异步数据加载的抽象类。这是加载器的基类。 您通常会使用 CursorLoader,但您也可以实现自己的子类。加载器处于Activity状态时,应监控其数据源并在内容变化时传递新结果。AsyncTaskLoader提供 AsyncTask 来执行工作的抽象加载器。CursorLoaderAsyncTaskLoader 的子类,它将查询 ContentResolver 并返回一个 Cursor。此类采用标准方式为查询 Cursor 实现 Loader 协议。它是以 AsyncTaskLoader 为基础而构建,在后台线程中执行 Cursor 查询,因此不会阻塞应用的 UI。使用此加载器是从 ContentProvider 异步加载数据的最佳方式,而不用通过片段或 Activity 的 API 来执行托管查询。上表中的类和接口是您在应用中用于实现加载器的基本组件。 并非您创建的每个加载器都要用到上述所有类和接口。但是,为了初始化加载器以及实现一个 Loader 类(如 CursorLoader),您始终需要要引用 LoaderManager。下文将为您展示如何在应用中使用这些类和接口。

0 0