作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 android 的新手,在思考 Parcelable 界面时遇到了一些麻烦。
我终于找到了这个: https://stackoverflow.com/a/2141166/6647053
上述回答的要点是,当将对象传递给 Activity 时,这:
intent.putExtra("object", parcelableObject);
比这表现得更好:
intent.putExtra("object", serializableObject);
我的问题是:在 Parcelable 中使用 Parcel 的读/写可序列化方法(而不是仅使用带有 intent.putExtra 的可序列化对象)是否有任何性能优势?为什么/为什么不?
例子:
public class MyParcelable implements Serializable, Parcelable {
/* Some Custom Object Stuff Here */
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags) {
parcel.writeSerializable(this);
}
public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
public MyParcelable createFromParcel(Parcel parcel) {
return parcel.readSerializable();
}
public MyParcelable[] newArray(int size) {
return new MyParcelable[size];
}
};
}
最佳答案
这样写没有任何好处:打包会和序列化一样慢。
在普通 Java 中,Externalizable
比 Serializable
性能更好,因为你提供了自己的 readExternal(ObjectInput in)
和 writeObject (ObjectOutput out)
其中您应该手动序列化您的字段,而不是依赖 JVM 进行内省(introspection)并自动为您完成。 Android 的 Parcelable
具有类似的目的。
关于android - Parcel.writeSerializable 应该用在 Parcelable.writeToParcel 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907186/
我是 android 的新手,在思考 Parcelable 界面时遇到了一些麻烦。 我终于找到了这个: https://stackoverflow.com/a/2141166/6647053 上述回答
我是一名优秀的程序员,十分优秀!