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