我有这个完全转换为使用蜂窝的活动。我重写了所有的游标管理以使用新的cursorLoader。所有其他操作系统版本(使用兼容性库)的一切都很好,但仍然无法在蜂窝上使用。以下堆栈跟踪非常难以理解,因为它不告诉我哪个光标或哪一行失败。此外,在调试时,ParentActivity中的任何代码都不会执行。当我恢复ParentActivity时发生此错误。当我开始活动时效果很好,但在回到活动时失败。蜂窝和游标(沮丧)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): FATAL EXCEPTION: main
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): java.lang.RuntimeException: Unable to resume activity {com.xxx.xxx/com.xxx.xxx.ParentActivity}: java.lang.IllegalStateException: trying to requery an already closed cursor
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2227)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2255)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1028)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.os.Looper.loop(Looper.java:132)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.ActivityThread.main(ActivityThread.java:4025)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at java.lang.reflect.Method.invokeNative(Native Method)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at java.lang.reflect.Method.invoke(Method.java:491)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at dalvik.system.NativeStart.main(Native Method)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): Caused by: java.lang.IllegalStateException: trying to requery an already closed cursor
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.Activity.performRestart(Activity.java:4394)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.Activity.performResume(Activity.java:4420)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2217)
05-29 17:23:32.978: ERROR/AndroidRuntime(31692): ... 10 more
我对你的回应有些困惑,因为我没有真的交换任何游标,但是我发现我仍然在使用startManagingCursor,并且删除了这些行,现在都很开心。我非常感谢您花时间回复并指引我朝着正确的方向前进。感谢一堆! – 2011-05-30 01:05:13
@迈克尔没什么问题,我只想覆盖我所有的基地,因为他们有几种方法可以解决同样的问题。很高兴能帮助 – smith324 2011-05-30 01:50:53
更好地摆脱startManagingCursor,在您的活动中创建mCursor。在onPause或onDestroy中关闭它(取决于是否将它填充到onResume或onCreate中)。 – Yar 2012-06-19 11:45:40