안녕하세요?
이번에 겔S2 때문에 ICS 테스트중인데요 오류가 발생합니다;;
물론 진저브레드 까진 아무이상 없었습니다
내용 수정후 뒤로가기(Back Key)를 터치하면 수정내용이 저장되는 그러한 방식입니다
( 뒤로가기를 하면 저장후 그전 액티비티를 띄웁니다 )
하지만 저장은 되지만 오류가 떠서 어플이 꺼진뒤 다시 켜면 재대로 저장은 되있습니다
LogChat:
03-19 00:43:39.435: E/AndroidRuntime(16130): FATAL EXCEPTION: main
03-19 00:43:39.435: E/AndroidRuntime(16130): java.lang.RuntimeException: Unable to resume activity {com.ybproject.diarymemo/com.ybproject.diarymemo.DiaryMemoEdit}: java.lang.IllegalStateException: trying to requery an already closed cursor android.content.ContentResolver$CursorWrapperInner@41c83c10
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2443)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2471)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1172)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.os.Handler.dispatchMessage(Handler.java:99)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.os.Looper.loop(Looper.java:137)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.ActivityThread.main(ActivityThread.java:4340)
03-19 00:43:39.435: E/AndroidRuntime(16130): at java.lang.reflect.Method.invokeNative(Native Method)
03-19 00:43:39.435: E/AndroidRuntime(16130): at java.lang.reflect.Method.invoke(Method.java:511)
03-19 00:43:39.435: E/AndroidRuntime(16130): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-19 00:43:39.435: E/AndroidRuntime(16130): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-19 00:43:39.435: E/AndroidRuntime(16130): at dalvik.system.NativeStart.main(Native Method)
03-19 00:43:39.435: E/AndroidRuntime(16130): Caused by: java.lang.IllegalStateException: trying to requery an already closed cursor android.content.ContentResolver$CursorWrapperInner@41c83c10
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.Activity.performRestart(Activity.java:4508)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.Activity.performResume(Activity.java:4531)
03-19 00:43:39.435: E/AndroidRuntime(16130): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2433)
03-19 00:43:39.435: E/AndroidRuntime(16130): ... 10 more
Cursor 관련 부분 문제인듯 하여, 아래처럼 처리하고 있습니다
Cursor cursor = managedQuery(mUri, PROJECTION, null, null, null); DiaryMemo note = DiaryMemo.fromCursor(cursor); cursor.close();
참조로 전 startManagingCursor (cursor) 는 사용하지 않고있습니다.
이게 허니콤에서부터 오류가 나는듯 한데 해결방법좀 알려주세요
테스트 환경은 겔럭시 넥서스( OS 4.0.2 ) 입니다




API 를 다시 한번 살펴보세요.
http://developer.android.com/reference/android/app/Activity.html
managedQuery 내부에서 startManagingCursor 를 사용하고 있는 것 같습니다.