기본적으로 상태 사이에 비트 맵 배열을 저장하려고 해요.ClassCastException 때 parcelable 배열을 unmarshelling
내 조각의 onSaveInstanceState :
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelableArray(SELECTED_IMAGES_ARRAY_BUNDLE, galleryAdapter.getImageBitmaps());
}
내가 그래서 배열을 검색 onCreateView 그것의에서이 안드로이드 OS가 일부 메모리 관리를 수행하는 경우를 제외하고, 정기적으로 WORKS
savedInstanceState.setClassLoader(Bitmap.class.getClassLoader());
Bitmap[] savedSelectedImages = (Bitmap[]) savedInstanceState.getParcelableArray(SELECTED_IMAGES_ARRAY_BUNDLE);
은 죽여 내 프로세스는 백그라운드에서 실행, 그리고 나중에 내가 다시에 올 때 복원을 시도 않다면.
이
는 오류가 내가 얻을 수 있습니다 :AndroidRuntime(4985): Caused by: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to android.graphics.Bitmap[]
내가 제대로 클래스 로더를 설정하지 않는 함께 할 수있는 뭔가라고 생각하지만, 나는 모든 것을 시도하고 작동시킬 수없는 것
나는 그것을 줄 것이다. 내 방법에있어 잘못된 점에 대한 설명이 있습니까? 프로세스가 사망 할 때까지 그것은 잘 작동 –
그래, 응용 프로그램은 더 이상 때문에 예외 충돌하지 않습니다. 이 그래서 대답은 왜 좋은 설명을 가지고 : [링크] (http://stackoverflow.com/questions/8745893/i-dont-get-why-this-classcastexception-occurs?lq=1) @Pragnani의 추천 그래도 큰 비트 맵을 따르는 것이 가장 좋습니다. –