我想从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
我不知道,问题是什么。