0

一時的に保存するために 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

わかりません、何が問題なのですか。

4

0 に答える 0