Android-在不同apk上的服务之间以捆绑方式传递可序列化或可打包

Android-在不同apk上的服务之间以捆绑方式传递可序列化或可打包,android,serialization,process,parcelable,serializable,Android,Serialization,Process,Parcelable,Serializable,我正在开发属于不同Android APK的服务之间的消息接口 发送方服务可以向接收方服务发送消息,该消息作为包实现。 可以正确地交换字符串或布尔值等基本类型 下面的步骤是交换在库中定义的、在不同服务之间共享的更复杂的对象。 这些对象实现了putParcelable或Serializable接口,因此可以使用putParcelable和putSerializable方法将它们封装在包中 不幸的是,这个解决方案不起作用。在服务接收的bundle对象中,parcelable(或serializable

我正在开发属于不同Android APK的服务之间的消息接口

发送方服务可以向接收方服务发送消息,该消息作为
包实现。
可以正确地交换字符串或布尔值等基本类型

下面的步骤是交换在库中定义的、在不同服务之间共享的更复杂的对象。 这些对象实现了
putParcelable
Serializable
接口,因此可以使用
putParcelable
putSerializable
方法将它们封装在
包中

不幸的是,这个解决方案不起作用。在服务接收的bundle对象中,parcelable(或serializable)对象由
字符串替换。Android似乎在将捆绑包发送到接收方服务之前调用了对象的
toString
方法


如果不实现将每个对象序列化为仅由基元类型构成的
捆绑包
的方法,有没有解决此问题的方法?

您始终可以将
Base64
ed对象交换为字符串,并且字符串可以由
ByteArray
生成,因此有一个想法可以尝试


实际上,您可以通过字符串传递很多信息:)

当您从包中调用
getParcelable()
时会发生什么?你得到空值了吗?你的代码中有错误:你可以很容易地在活页夹中传递任何
Parcelable
transactions@NoChinDeluxe当我调用
getParcelable()
执行对预期类型的强制转换时,抛出类强制转换异常是因为
捆绑包中的元素被视为
字符串
对象。因此,例如,示例对您不起作用?我觉得您实现
可包裹
接口的方式有问题。你可以发布你的一个包裹的一些代码来展示其中一个失败的例子吗?你是对的。现在,我将该对象序列化为JSON,以便可以将其作为
字符串
传递,但如果可能的话,我正在寻找更好的解决方案。