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