2011-09-21 59 views
3

我在FragmentActivity中使用LoaderManager.LoaderCallbacks<Cursor>Android LoaderCallback不刷新

我援引onResume()getSupportLoaderManager().restartLoader(0, null, loader);

我援引onCreate()

loader = new ApplicationLoader(); 
getSupportLoaderManager().initLoader(0, null, loader); 

最後我:

button.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // Deleting row from database 
    } 
}); 

但我的列表不刷新其項目。

只有工作的方法是調用:

loader = new ApplicationLoader(); 
getSupportLoaderManager().restartLoader(0, null, loader); 
+0

你有沒有想過這個? – Adam

回答

3

我有一個類似的問題。我忘了撥打電話:

getContext().getContentResolver().notifyChange(uri, null); 

插入,更新和刪除後。另外,不要關閉任何遊標。裝載機爲你做。

+0

加載程序不會自動關閉遊標。你必須調用['changeCursor(null)'](http://developer.android.com/reference/android/support/v4/widget/CursorAdapter.html#changeCursor(android.database.Cursor))來關閉遊標。 – 2013-02-17 01:16:23

+0

是的,我忘了回答我的問題。確實如此。 – CeccoCQ

+1

@LaiVung「加載程序一旦知道應用程序不再使用它就釋放數據,例如,如果數據是來自CursorLoader的遊標,則不應該自己調用close(),如果遊標正在放置在CursorAdapter中,您應該使用swapCursor()方法,以便舊的遊標未關閉。「 -http://developer.android.com/guide/components/loaders.html – Adam