我知道这个问题已被多次询问,而且我已经经历了很多这些问题......几乎所有这些问题都为你的课程提供了可以使用的parcelable界面.然而在几个问题中,我遇到了一个引文:
"注意:看到Parcelable可能引发了这个问题,为什么Android没有使用内置的Java序列化机制?事实证明,Android团队得出结论,Java中的序列化速度太慢,无法满足Android的进程间通信因此,团队构建了Parcelable解决方案 .Parcelable方法要求您明确地序列化类的成员,但最终,您可以更快地对对象进行序列化.还要意识到Android提供了两种机制,允许您将数据传递给另一个进程.第一个是使用intent将bundle传递给一个活动,第二个是将Parcelable传递给一个服务.这两个机制是不可互换的,不应该混淆.也就是说,Parcelable是并不意味着要传递给一个活动.如果你想启动一个活动并传递一些数据,请使用一个包.Parcelable只能作为AIDL定义的一部分使用."
这个引用也可以在Pro Android 2一书中找到.
现在看到同一个应用程序中的所有活动都在同一个进程中运行(Android中的每个活动都是一个进程,或者一个应用程序是一个进程),除非清单中另有说明,否则同一应用程序的活动内的通信不是进程间通信所以.使用parcelable类真的更快,还是只是通过意图通过bundle传递你的对象属性?
在很大程度上赞赏这方面的任何亮点.干杯!!
该Parcelable构造被设计为在跨应用程序内存边界传递数据时非常快:在应用程序中,使用Bundle可以更好地服务,因为发送者和接收者都可以访问存储数据的所有内存位置.由于内存中的对象是可访问的,因此不需要承担重建的成本:只需使用Bundle,它实际上只是一种HashMap特定于类型的put/get方法的美化.
对于AIDL和IPC目的,您不能(默认情况下)共享内存位置,因此您需要一种有效的数据移动方式:这是Parcelable开始的地方.除非您的应用程序的某个组件使用remote过程功能,否则不需要使用Parcelable.
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |