我的活动启动一个IntentService,然后调用一个远程API。然后我需要将结果数据传回Activity(通过BroadcastReceiver)。在应用程序的其余大部分内部,这些数据都封装在一个类中,原始成员变量保存着数据。但是当结果通过Intent传递时,我的选择受到限制,因为我无法跨越边界传递标准Java对象。我正在寻找一种简洁而整洁的方式来通过Intent传递像这样的对象,而不需要编写大量的重复代码。如何从IntentService返回对象?
选项:
- 我的类实现Parcelable。单调地执行/维护
- 单独传递每个成员变量,并在另一侧重建对象。单调乏味地实施/维护
- 使用AIDL指定合同。从来没有做过,不知道这是多么恰当。
- 序列化对象并将字符串传递给Activity。通过一个意图是否存在字符串长度限制?我收集可能有性能问题。
我应该使用哪种方法,为什么?
你是否将许多同一类的对象传递给活动?你想缓存这些数据吗? – manno23
它通常是一个对象,并且数据通常不会被缓存。 –