如果我通过 LocalBroadcastManager 将 Parcelable 对象发送到程序的另一部分 - 那么 Parcelable 是不可变的吗?在接收到的 Parcelable 不能影响最初传输的对象的意义上是不可变的。我猜是这样,因为我猜 Parcelable 是一种“深度复制”序列化机制,而不是通过引用传递,但我需要确定。知道的人可以告诉我是否必须担心接收端的某个人更改接收到的对象的值,如果我想防止它影响原始对象...?
最佳答案
If I send a Parcelable object to another part of my program via LocalBroadcastManager -is the Parcelable immutable then?
这不能保证。事实上,据我所知,本地广播根本不会发生这种情况。
I guess Parcelable is a "deepcopy" serialization mechanism and not pass by reference
仅跨进程边界。这恰好包括诸如 startActivity()
之类的东西,用于您的另一个 Activity ,因为它们涉及 IPC。但是 Intent
对象——及其附加功能——只是通过 LocalBroadcastManager
在您的进程中传递。我看不到 Intent
会被迫复制的地方。
关于android - 通过 LocalBroadcastManager 传输的 parcelable 是不可变的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22562051/