回答

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); 
    } 
}
:沿線的

東西