|
Class/Interface |
说明 |
| LoaderManager | 一个抽像类,关联到一个Activity或Fragment,管理一个或多个装载器的实例。这帮助一个应用管理那些与Activity或Fragment的生命周期相关的长时间运行的的操作。最常见的方式是与一个CursorLoader一起使用,然而应用是可以随便写它们自己的装载器以加载其它类型的数据。 每个activity或fragment只有一个LoaderManager。但是一个LoaderManager可以拥有多个装载器。 |
| LoaderManager.LoaderCallbacks | 一个用于客户端与LoaderManager交互的回调接口。例如,你使用回调方法onCreateLoader()来创建一个新的装载器。 |
| Loader(装载器) | 一个执行异步数据加载的抽象类。它是加载器的基类。你可以使用典型的CursorLoader,但是你也可以实现你自己的子类。一旦装载器被激活,它们将监视它们的数据源并且在数据改变时发送新的结果。 |
| AsyncTaskLoader | 提供一个AsyncTask来执行异步加载工作的抽象类。 |
| CursorLoader | AsyncTaskLoader的子类,它查询ContentResolver然后返回一个Cursor。这个类为查询cursor以标准的方式实现了装载器的协议,它的游标查询是通过AsyncTaskLoader在后台线程中执行,从而不会阻塞界面。使用这个装载器是从一个ContentProvider异步加载数据的最好方式。相比之下,通过fragment或activity的API来执行一个被管理的查询就不行了。 |
// 准备装载器.可以重连一个已经存在的也可以启动一个新的. getLoaderManager().initLoader(0,null, this);
<pre name="code" class="html">public boolean onQueryTextChanged(String newText) {
// 当动作栏的搜索字串发生改时被调用.
// 更新搜索过虑,然后重新启动装载利用这个新过虑进行新的查询.
mCurFilter = !TextUtils.isEmpty(newText) ? newText : null;
getLoaderManager().restartLoader(0, null, this);
return true;
}
<span style="font-family: Arial, Helvetica, sans-serif;">LoaderManager.LoaderCallbacks是一个回调接口,它使得客户端可以与LoaderManager进行交互.</span>
</span></span> LoaderManager.LoaderCallbacks 包含以下方法们: onCreateLoader() —跟据传入的ID,初始化并返回一个新的装载器. onLoadFinished() —当一个装载器完成了它的装载过程后被调用. onLoaderReset() —当一个装载器被重置而什其数据无效时被调用.
String mCurFilter;
...
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// 这里是在需要创建新装载器时被调用的.
// 我们只是简单的拥有一个装载器,所以我们不需要关心ID.
// First, pick the base URI to use depending on whether we are
// currently filtering.
Uri baseUri;
if (mCurFilter != null) {
baseUri = Uri.withAppendedPath(Contacts.CONTENT_FILTER_URI,
Uri.encode(mCurFilter));
} else {
baseUri = Contacts.CONTENT_URI;
}
// Now create and return a CursorLoader that will take care of
// creating a Cursor for the data being displayed.
String select = "((" + Contacts.DISPLAY_NAME + " NOTNULL) AND ("
+ Contacts.HAS_PHONE_NUMBER + "=1) AND ("
+ Contacts.DISPLAY_NAME + " != '' ))";
return new CursorLoader(getActivity(), baseUri,
CONTACTS_SUMMARY_PROJECTION, select, null,
Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有