Android ではsSerializable
内でオブジェクトを渡すことができますがIntent
、パフォーマンス上の理由から推奨されないことを理解しています。
ただし、を使用LocalBroadcastManager
している場合、インテントに渡されたときにオブジェクトがシリアル化またはパーセル化されることはありますか? LBM はプロセス間ではないため、シリアライゼーション (またはパーセリング) を呼び出す理由はありません。
Android ではsSerializable
内でオブジェクトを渡すことができますがIntent
、パフォーマンス上の理由から推奨されないことを理解しています。
ただし、を使用LocalBroadcastManager
している場合、インテントに渡されたときにオブジェクトがシリアル化またはパーセル化されることはありますか? LBM はプロセス間ではないため、シリアライゼーション (またはパーセリング) を呼び出す理由はありません。
おっしゃるとおり、 を使用するときにシリアライゼーションやパーセリングを呼び出す理由はないはずですが、そのクラスは、システムを介してブロードキャストを送信しても意味がない場合にLocalBroadcastManager
、通常の代わりとして設計されました。BroadcastManager
開発者が手間をかけずに通常のブロードキャストをローカルのブロードキャストに置き換えることができるようにするためのアイデアだったと思います。
新しいプロジェクトに取り組んでいて、この種の機能が必要な場合は、OttoやEventBusなどのバス ライブラリを使用することをお勧めします。これにより、同じ問題がより適切でエレガントな方法で解決されます (IMHO)。
LocalBroadcastManager のソースコードをざっと見てみると、Intents の Serializable/Parcelable オブジェクトがシリアライズまたはパーセル化されていないことがわかります。