私は基本的に、状態間のビットマップの配列を保存しようとしています。
私のフラグメントの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 OSが何らかのメモリ管理を行い、バックグラウンドで実行されている場合はプロセスを強制終了し、後で戻ったときにプロセスを復元しようとする場合を除いて、定期的に機能します。
これは私が得るエラーです:
AndroidRuntime(4985): Caused by: java.lang.ClassCastException: android.os.Parcelable[] cannot be cast to android.graphics.Bitmap[]
classLoaderを適切に設定していないことが関係していると思いましたが、すべてを試しましたが、機能しないようです。