一時的に保存するために onSaveInstanceState メソッドから Bundle を分割したいと考えています。
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putBoolean(..);
savedInstanceState.putInt(..);
//...
super.onSaveInstanceState(savedInstanceState);
userInputs = savedInstanceState;
}
putBoolean と putInt のみを使用します。このデータを別の場所に保存します。
Parcel p1 = Parcel.obtain();
p1.writeBundle(userInputs);
byte[] b1 = p1.marshall();
後で再利用します。
Parcel p11 = Parcel.obtain();
p11.unmarshall(b1, 0, b1.length);
p11.setDataPosition(0);
Object o = p11.readValue(Bundle.class.getClassLoader());
Bundle result2 = (Bundle) o;
この例外 @p11.readValue が発生します
java.lang.RuntimeException: Parcel android.os.Parcel@41e42c70: Unmarshalling unknown type code 4292 at offset 0
わかりません、何が問題なのですか。