Loaders

从Android 3.0 开始,Loader 让Activity或Fragment中异步加载数据变得简单。Loader具有如下特性:

  • Activity和Fragment中都可用Loader
  • 异步加载数据
  • 可监控加载状态
  • 自动重新连接???

Loader可异步的对Content Provider或数据源执行异步操作。

API 概述

  • LoaderManager 每个Activity或Fragment只有一个LoaderManager,但是可以有多个Loader
  • LoaderManager.LoaderCallbacaks
  • Loader
  • AsyncTaskLoader 通过AsyncTask执行工作
  • CursorLoader AsyncTaskLoader子类,查询ContentResoler并返回一个Cursor。

    在应用中使用Loader

    启动Loader

    getLoaderManager().initLoader(0, null, this);
    
    initLoader()需要三个参数
  • 唯一的ID
  • 构造Loader时需要的参数
  • LoaderManager.LoaderCallbacks实现

当调用initLoader()时,如果ID已存在,上次创建的Loader会被重用,如果数据已获取,会立即调用onLoadFinished();如果不存在,会触发LoaderManager.LoadCallbacks中的onCreateLoader(),待数据完成后,会调用onLoadFinished()。

重启Loader

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

LoaderManager CallBack

onCreateLoader() — Instantiate and return a new Loader for the given ID.

onLoadFinished() — Called when a previously created loader has finished its load.

onLoaderReset() — Called when a previously created loader is being reset, thus making its data unavailable.

results matching ""

    No results matching ""