在activity和fragmente可以通过
getLoaderManager().initLoader(0,null,this);
//第一个id,第二个Bundle,第三LoaderManager.LoaderCallbacks来实例化一个loader, LoaderCallbacks会重写三个方法
@Override//第一次加载
public Loader<List<Urldate>> onCreateLoader(int i, Bundle bundle) {
return new TestLoader();
}
//获取数据
@Override
public void onLoadFinished(Loader<List<Urldate>> loader, List<Urldate> urldates)
{
}
@Override
public void onLoaderReset(Loader<List<Urldate>> loader) {
}
Test extends AsyncTaskLoader<List<Urldate>> AsyncTaskLoader是Loader的子类通过异步加载数据
在方法onStartLoading()进行加载forceLoad()会调用loadInBackgroud()进行数据更新
/开始加载的 froceLoad调用 @Override protected void onStartLoading() { // super.onStartLoading(); if (takeContentChanged() || mData == null) { // If the data has changed since the last time it was loaded // or is not currently available, start a load. forceLoad(); } }
在方法loadInBackgroud()中,
@Override
public List<Urldate> loadInBackground() {}
发送你上面更新过的数据super.deliverResult
@Override
public void deliverResult(List<Urldate> data) {}
在
LoaderCallbacks的onLoaderFinished中接受更新数据集市方法的第二参数为你发送过来的数据