Android java.lang.IllegalStateException:尝试在方向更改时重新打开已关闭的对象

Android java.lang.IllegalStateException:尝试在方向更改时重新打开已关闭的对象,android,cursor,android-lifecycle,Android,Cursor,Android Lifecycle,我使用1个活动,在sw600着陆的情况下膨胀2个碎片(2个窗格),在sw600着陆的情况下膨胀1个碎片 这两个片段都实现了LoaderManager.LoaderCallbacks 我正在初始化加载程序(在onStart) 然后我关闭了onload finished(在最后一行)中的光标,给出了错误,因此我尝试在其他地方关闭光标,因为我在StackOverflow上找到的答案与onDestroy给出的错误相同 因此,当我可以关闭光标时?在加载程序框架中使用光标加载程序时,您不应该关闭()。游标

我使用1个活动,在sw600着陆的情况下膨胀2个碎片(2个窗格),在sw600着陆的情况下膨胀1个碎片

这两个片段都实现了LoaderManager.LoaderCallbacks


我正在初始化加载程序(在
onStart

然后我关闭了
onload finished
(在最后一行)中的光标,给出了错误,因此我尝试在其他地方关闭光标,因为我在StackOverflow上找到的答案与
onDestroy
给出的错误相同


因此,当我可以关闭光标时?

加载程序
框架中使用
光标加载程序
时,您不应该
关闭()。
游标加载程序将处理它

虽然
CursorLoader
的文档没有特别提到这一点,但是在onLoadFinished部分中,常规文档会在下面对其进行注释

加载程序一旦知道应用程序不再使用数据,就会释放数据。例如,如果数据是来自的游标,您不应该自己调用它。如果光标放置在中,则应使用该方法,以使旧光标不被关闭


如果您使用的是
光标加载程序
,您不应该自己关闭
光标
CursorLoader
将处理它。非常感谢,也许这在谷歌的中间过程中已经过时了,你也可以把它作为一个答案来接受和投票
getActivity().getSupportLoaderManager().initLoader(pm2_MAIN_LOADER_ID, null, this);