2017-08-26 32 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未关闭。

相关问题