2013-03-16 4 views
0

Cursor window could not be created from binder을 확인했습니다. 그것의 거의 700, 전화 번호부에서 연락처를 가져 오는 동안바인더에서 Android 커서 창을 만들 수 없습니다.

I 메모리의 문제를 얻고는, 아래 내 코드와 나는 OS 4+

Cursor cursor =managedQuery(ContactsContract.Contacts.CONTENT_URI, 
    new String[]{Data._ID,"display_name","photo_id","starred"}, 
    null, null, "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC , " 
    + ContactsContract.Contacts.HAS_PHONE_NUMBER+ " DESC"); 
Cursor pCur; 
Cursor emailCur; 
while(cursor.moveToNext()) { 
    pCur = WP7Main.this.managedQuery(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     projPhone, ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
     + " = ?", new String[] { id }, null); 
} 

에서 테스트를하고 그리고 AsyncTask를이 일을하고있다 + 연락처

나는이 문제를 해결하려면 어떻게

E/CursorWindow(25078): Could not create CursorWindow from Parcel due to error -12. 
W/dalvikvm(25078): threadid=14: thread exiting with uncaught exception (group=0x40c66930) 
E/AndroidRuntime(25078): FATAL EXCEPTION: AsyncTask #3 
E/AndroidRuntime(25078): java.lang.RuntimeException: An error occured while executing doInBackground() 
E/AndroidRuntime(25078): at android.os.AsyncTask$3.done(AsyncTask.java:299)* 

오류

아래는 무엇입니까?

+0

당신은 pCur를 닫으려고 했습니까? 반복 할 때마다 닫혀 야합니다. – sandrstar

+0

@ sandrstar : 나는 모두 linkes에 표시된 시도했다 http://stackoverflow.com/questions/14316082/cursor-window-could-not-be-created-from-binder – Android

답변

0

API 11 이후 managedQuery가 더 이상 사용되지 않으므로 CursorLoader를 사용해야합니다. 비동기 백그라운드 스레드에서 managedQuery 메소드 (활동 스레드에 있음)를 실행하려고하기 때문에보고있는 예외를 추측하고 있습니다. 나는 그러한 큰 요청을 자신의 스레드에서 처리하기를 원한다면 다른 방법을 사용해야한다는 것에 동의합니다.

관련 문제