【发布时间】:2011-11-06 13:14:21
【问题描述】:
我知道这个问题已经被问过很多次了,我也经历过很多这样的问题......几乎所有这些问题都与您的班级使用 parcelable 界面有关。 然而,在几个问题中,我遇到了一个引用:
“注意:看到 Parcelable 可能会引发问题,为什么 Android 不使用 内置Java序列化机制?原来Android团队得出了结论 Java 中的序列化速度太慢,无法满足 Android 的进程间通信 要求。因此团队构建了 Parcelable 解决方案。 Parcelable 方法需要 你明确地序列化你的类的成员,但最后,你会得到一个更快的 对象的序列化。 还要意识到 Android 提供了两种机制允许您将数据传递给另一个 过程。第一种是使用意图将捆绑包传递给活动,第二种是通过 可打包到服务。 这两种机制不可互换,也不应 使困惑。也就是说,Parcelable 并不意味着传递给活动。 如果你想开始 一个活动并传递一些数据,使用一个包。 Parcelable 仅用作 AIDL 定义。”
这句话也可以在 Pro Android 2 一书中找到。
现在看到同一个应用程序内的所有活动都在同一个进程中运行(Every Activity in Android is a Process,or One Application is one process),除非清单中另有说明,否则同一个应用程序的活动内的通信本身并不是进程间通信。那么它真的更快吗使用 parcelable 类,还是通过意图通过 bundle 传递对象属性就足够了?
我们将非常感谢您对这方面的任何了解。 干杯!!
【问题讨论】:
-
我个人使用从应用程序扩展的类并将它们存储为静态也许这不是最佳实践,但效果很好。
标签: android