2

我了解虽然android允许Serializable在s内传递对象Intent,但出于性能原因不建议这样做。

但是,如果一个人正在使用LocalBroadcastManager,该对象是否会在传入意图时被序列化或完全打包?由于 LBM 不是进程间的,因此没有理由调用序列化(或为此进行打包)。

4

2 回答 2

2

你是对的,在使用时应该没有理由调用序列化或打包LocalBroadcastManager,但是,该类被设计为BroadcastManager在通过系统发送广播没有意义的情况下替代正常的;我认为这个想法是为了让开发人员无需付出太多努力就可以用本地广播代替正常广播。

如果您正在开发一个新项目并需要这种功能,我建议您使用像OttoEventBus这样的总线库,它以更好、更优雅的方式(恕我直言)解决了同样的问题。

于 2013-02-04T22:18:20.653 回答
0

快速浏览一下 LocalBroadcastManager 的源代码会发现 Intent 中的 Serializable/Parcelable 对象没有被序列化或打包。

https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v4/java/android/support/v4/content/LocalBroadcastManager.java

于 2013-02-04T22:21:27.790 回答