来自安卓文档:
注意:看到 Parcelable 可能会引发问题,为什么 Android 不使用内置的 Java 序列化机制?事实证明,Android 团队得出的结论是,Java 中的序列化速度太慢,无法满足 Android 的进程间通信要求。因此,该团队构建了 Parcelable 解决方案。Parcelable 方法要求您显式序列化类的成员,但最终,您可以更快地序列化对象。
所以我们知道 Parcelable 实际上比 Serializable 更好,但另一方面,
还要意识到 Android 提供了两种机制,允许您将数据传递给另一个进程。第一种是使用意图将捆绑包传递给活动,第二种是将 Parcelable 传递给服务。这两种机制不可互换,不应混淆。也就是说,Parcelable 并不意味着传递给活动。如果您想启动一个活动并传递一些数据,请使用捆绑包。Parcelable 仅用作 AIDL 定义的一部分。
好的,但是我需要将自定义对象列表传递给我的活动!因此,我仍然必须将可打包或可序列化的对象放入捆绑包中!
现在我这样做了:
public class MyObject implements Serializable{
并通过:
Bundle b = new Bundle();
b.putSerializable("objList", anArrayListWithMyObjectElements);
intent.putExtra("objList", b);
由于 ArrayList 也实现了 Serializable 它工作正常...但我看不出以这种方式使用捆绑包的意义...但是 android 告诉我不要使用 Parcelable 进行活动通信...正确答案是什么?