インスタンス間だけでなく、Androidのアプリケーション間で通信する方法を理解しようとしていActivityます。
メッセンジャーobjをサービスに送信する「クライアント」を設定しました(サービスにIntent送信されます)。サービスはMessageobjを作成し、を使用して「クライアント」に送り返しますmessenger.send(message)。これは、Message.objを使用してオブジェクトを保持しようとするまでは正常に機能します。
サービスで独自のParcelableクラスを作成MyParcelableし、メッセージに入れました。メッセージが「クライアント」でマーシャリングされなくなるまで、すべてが機能します。'client'にはMyParcelableクラスへのアクセス権がないため、アンマーシャルは失敗します。それは明らかです-それらは異なるパッケージにあります(たとえばcom.whatever.myclientとcom.whatever.myserver)。これは完全に間違った方法ですか?
また、を作成しParcelて送信しようとしました(これにより、両方のアプリケーションがクラスにアクセスできるようになります)が、ParcelそうではありませんParcelable。使用されているクラスローダーについて読んだことがありますが、別々のアプリケーションで別々のクラスローダーがどのように使用されているかを理解していません(その点でAndroidアーキテクチャを理解している場合はプロセス)。つまり、一方のクラスローダーに、もう一方のクラスローダーに存在するクラスについて「教える」にはどうすればよいでしょうか。確かに「これがあなたのやり方です」というのは明らかなはずですが、私はまだそれを見ていません。