2017-08-26 41 views
1

我使用1個活性,在SW600的土地殼體和SW600java.lang.IllegalStateException:嘗試重新打開已關閉的對象上的取向變化

1片段的情況下膨脹2個片段(2個窗格)

片段的兩個實施LoaderManager.LoaderCallbacks


我被(在onStart)初始化裝載機

getActivity().getSupportLoaderManager().initLoader(pm2_MAIN_LOADER_ID, null, this); 

然後我關閉光標在onLoadFinished(在它的最後一行)給我的錯誤,所以我試圖關閉它在別的地方,因爲我在StackOverflow上找到的答案爲onDestroy給出了相同的錯誤

所以當我可以關閉遊標?

+1

如果你使用'CursorLoader',你不應該自己關閉'Cursor'。 'CursorLoader'將處理它。 –

+0

非常感謝你,也許這已經過時了谷歌的中級課程,你也可以把它作爲接受和投票的答案 –

回答

1

當使用CursorLoaderLoader框架時,您不應該自己close()CursorCursorLoader將處理它。

雖然爲CursorLoader的文檔沒有明確提到這一點,爲Loaders一般文檔注意它Using the LoaderManager Callbacks下,在onLoadFinished部分。

加載程序在知道應用程序不再使用它時會釋放數據。例如,如果數據是來自CursorLoader的光標,則您不應該自己調用close()。如果光標放在CursorAdapter中,則應該使用swapCursor()方法,以便舊的Cursor未關閉。

相關問題