1

来自安卓文档:

注意:看到 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 进行活动通信...正确答案是什么?

4

1 回答 1

3

根据我的经验,我强烈建议尽可能使用ParcelableIPC,无论是否使用 IPC。它实际上是 Android对 Java 的替代品Serializable,而且更加优化。

如果您需要有关如何包裹物品的帮助,请告诉我。

于 2012-09-28T10:51:46.817 回答