从 IntentService 传递数据

Passing data from IntentService

我有以下流程:
ActivityA/FragmentA 通过 intents 传递给 ActivityB/FragmentB 一个自定义的有点大的对象。
在对象的属性中有一个 List<CustomObject> items
用户按下 FragmentB 中的一个小部件,然后 FragmentB 开始 ActivityC/FragmentC 传递应该在其 UI 中显示详细信息的自定义对象(Parcelable)也开始Service 以获取填充该特定对象的 items 的列表。
当服务从后台 HTTP 调用获取结果时,我需要更新 UI 中预期显示这些已获取项目的列表。 此列表位于 FragmentC 中,其中包含带有 items null.
的自定义对象的副本 Service 有自定义对象的另一个副本,items 刚刚获取但无法更新片段列表。
制作片段的静态变量并分配 this,然后在片段中公开 public 方法,Service 可以调用该方法来传递项目,但非常脏。
我想知道什么是 clean/standard 设计?

I am using LocalBroadcastManager but the list is fairly large and I am not sure if passing it via the intent is a good idea

通常我们使用Intent是为了跨越进程边界,所以Intent需要转成字节数组(通过Parcel ),这将成为大数据的问题。 LocalBroadcastManager 不会那样做——它只是按原样传递 Intent 对象。

LocalBroadcastManager的缺点是消息一个Intent,因为Intent通常用于IPC,它对数据类型有限制。出于这个原因,我个人推荐 greenrobot 的 EventBus,甚至 Square 的 Otto,而不是 LocalBroadcastManager。话虽这么说,如果您可以轻松地将数据放入 Intent,大小应该不是问题。