我正面临着Loader的问题.
我有一个Activity,它显示从本地DB检索的记录列表.活动开始时,记录将通过LoaderManager.initLoader()方法自动加载.
还可以通过ActionBarSherlock中的刷新按钮手动刷新列表.但是,在完成另一个向DB添加记录的活动之后,不会调用onLoadFinished.
我正在使用SimpleCursorLoader,这里是活动的代码片段:
@Override
public void onStart() {
...
getSupportLoaderManager().initLoader(0, null, this);
}
@Override
public void onPause() {
...
getSupportLoaderManager().destroyLoader(0);
}
public void refreshRecords() {
getSupportLoaderManager().restartLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, final Bundle args) {
Loader<Cursor> l = new SimpleCursorLoader(this) {
@Override
public Cursor loadInBackground() {
return recordDAO.getCursor();
}
};
l.forceLoad();
return l;
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor c) {
// updateUI
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
}
Run Code Online (Sandbox Code Playgroud)
问题是,在完成其他活动之后,会onLoaderCreate …