1.parcelable和bundle对象可跨进程边界使用,例如与IPC/Binder事务之间,带有intent的activity之间等,还可以用来存储跨配置更改的瞬时状态
2.当使用intent对象进行数据传递时,操作系统会将intent的基础bundle打包。然后,操作系统会创建新的activity,将数据拆包,并将intent传递给新的activity。(建议使用bundle类为intent对象设置操作系统已知的基元)(通过intent发送数据时,应小心地将数据大小限制为几kb。发送过多的数据会导致系统抛出TransactionTooLargeException异常)
3.在某些情况下,需要一种机制来跨activity发送复合对象或复杂对象。这种情况下,自定义类实现parcelable,并提供相应的writeToParcel(android.os.Parcel,int)方法。它还必须提供实现parcelable.creator接口的非空字段CREATOR,该接口的createFromParcel()方法用于将parcel转回为当前对象。
4.在进程之间发送数据与在activity之间发送数据类似,不过在进程之间发送时,尽量不适用自定义parcelable。如果一定要使用,则一定要确保发送和接受的应用上都存在版本完全相同的自定义类
5.Binder事务缓存区的大小固定有限制,目前为1MB,由进程中正在处理的所有事务共享。由于此限制是进程级别而不是activity级别的限制,因此这些事务包括应用中的所有binder事务