我基本上是在尝试在状态之间保存一组位图。
我的片段的 onSaveInstanceState:
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putParcelableArray(SELECTED_IMAGES_ARRAY_BUNDLE, galleryAdapter.getImageBitmaps());
}
在它的 onCreateView 中,我这样检索数组:
savedInstanceState.setClassLoader(Bitmap.class.getClassLoader());
Bitmap[] savedSelectedImages = (Bitmap[]) savedInstanceState.getParcelableArray(SELECTED_IMAGES_ARRAY_BUNDLE);
这经常工作,除了当 Android 操作系统进行一些内存管理时,如果它在后台运行会杀死我的进程,然后当我回到它时尝试恢复它。
这是我得到的错误:
AndroidRuntime(4985): Caused by: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to android.graphics.Bitmap[]
我认为这与没有正确设置类加载器有关,但我尝试了一切,似乎无法让它工作