我想为我的Android应用程序使用ListFragment和Loader类。 (蜂窝级SDK,但谷歌发布可比性包)
在Fragment中是否有使用Fragmemt生命周期管理游标API
活动有“startManagingCursor(Cursor c)”
或
片段在其生命周期中自动管理光标吗?
答案 0 :(得分:2)
我不确定我的问题是否正确,但如果您在使用Loader时询问您的光标是否在ListFragment中自动管理,那么我相信答案是:是的,确实如此。
在ListFragment中,您将实现LoaderManager.LoaderCallbacks接口,然后使用LoaderManager中的initLoader()和restartLoader()在ListFragment的生命周期中管理您的数据和游标。底层的adatpter必须支持swapCursor()方法才能使其发挥最佳效果。
有些事情:
class Foo extends ListFragment implements LoaderManager.LoaderCallbacks {
private MyAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAdapter = new MyAdapter();
getLoaderManager().initLoader(0, null, this);
}
@Override
public Loader onCreateLoader(int id, Bundle args) {
Uri MY_URI = "your data URI goes here";
return new CursorLoader(getActivity(), MY_URI, MY_PROJECTION, selection, selectionArgs, sortOrder);
}
@Override
public void onLoadFinished(Loader loader, Cursor data) {
mAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader loader) {
mAdapter.swapCursor(null);
}
}