2013-04-09 48 views
1

我想使用CursorLoaders從數據庫中加載日期,但問題是我不想處理CursorAdapter或它想要使用Cursor使用帶遊標的裝載機

這裏是我做過什麼

class MyClass implements LoaderCallbacks<Cursor> { 

Cursor mCursor; 
... 
... 
... 


@Override 
    public Loader<Cursor> onCreateLoader(int id, Bundle bundle) { 
     if (type == V_TYPE_PART) { 
      // load all parts 
      return new CursorLoader(getActivity(), 
        PartTableMetaData.CONTENT_URI, 
        PartTableMetaData.TABLE_COLUMNS, null, null, 
        PartTableMetaData._ID + " ASC"); 
     } 
     return null; 
    } 

    @Override 
    public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) { 

     counterPartCursor = arg1; 
       //update the UI 


    } 

    @Override 
    public void onLoaderReset(Loader<Cursor> arg0) { 

     mCursor= null; 

    } 
} 

現在這個做工精細。我的問題是我正在做正確的方式?或者我應該讓其他東西像關閉光標onLoaderReset

+0

CursorAdapter在哪裏?我假設這是一個ListView。 – MowDownJoe 2013-04-09 21:25:06

+0

UI中沒有listView或CursorAdapter – user4o01 2013-04-09 21:59:13

回答

2

不關閉遊標並不是必需的。當CursorLoader負責關閉它時,設置null會使事情發揮作用。但我可以看到泄漏在當前的代碼

@Override 
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) { 

    counterPartCursor = arg1; 
      //update the UI 


} 

@Override 
public void onLoaderReset(Loader<Cursor> arg0) { 

    mCursor= null; 

} 

你持有counterPartCursor參考,使mCursor空!