1

ネットワーク通信用のイベント ディスパッチャーを実装したいと考えています。アクティビティは、次のような関数を使用して、このディスパッチャーにリスナーを登録する必要があります。

void addListener(String type, Listener listener)

一方、サーバーをリクエストするには、次のような関数が必要です。

void request(String type, JSONObject data)

サービスを使用して接続を保持し、イベントをディスパッチすることにしたのは、次の 2 つの理由からです。

  1. すべてのアクティビティからアクセスできるようにする
  2. Android アプリに指定されたライフサイクルを使用する

このサービスは他のアプリケーションから見えてはならないので、IPC は必要ありません。サービスをアクティビティにバインドし、android.os.IBinder を使用して通信用の android.os.Messenger を作成しようとまし。(ここで説明したように: Bound Services ) しかし、メッセージングとメッセージへの応答は、私の要件に実際には適合しないと思います。リスナーをサービスに登録し、それらのリスナーを呼び出してアクティビティのビューを操作する最良の方法は何ですか? もっと難しくするために: サービスにスレッドを使用して、リクエスト時に UI をブロックしないようにするにはどうすればよいでしょうか? 誰かがそれを行う方法や調査するための良いリソースを手に入れましたか? ありがとうございました :)

4

0 に答える 0