我正在尝试了解如何在Android应用程序之间进行通信 - 不仅限于Activity
实例之间的通信。
我建立了一个'客户端',向服务发送了一个Messenger对象(在发送到服务的Intent
中);服务创建了一个消息对象Message
并使用messenger.send(message)
将其发送回到'客户端'。这很好地运作,直到我尝试使用Message.obj来保存一个对象。
我在服务中创建了自己的Parcelable
类MyParcelable
并将其放入消息中。所有操作都正常进行,直到在'客户端'中取消编组消息。无法反序列化,因为'客户端'无法访问MyParcelable
类。这是显而易见的——它们位于不同的包中(例如com.whatever.myclient
和com.whatever.myserver
)。这样做完全错误吗?
我还尝试创建一个Parcel
并发送它(两个应用程序将同时访问该类)——但是Parcel
不是Parcelable
。我已经阅读了关于使用类加载器的文章,但不理解如何在单独的应用程序(如果我对Android架构的理解正确的话,进程)中使用单独的类加载器。也就是说,如何让一个类加载器“了解”另一个类加载器中存在的类?肯定有一个明显的“这就是你应该做的”方法,但我还没有看到它。