0

Android アプリケーション用の UDP メッセージング システムを作成しています。そのために、スレッドの送信、受信、解析を行う別のクラスを作成しました。クラスは 1 つだけインスタンス化する必要があります。UDP サーバーは 1 つだけです。

さて、Android では、基本的に異なるクラスである複数のアクティビティが設計に含まれています。これらの異なるクラスから UDP 通信インターフェイスを使用したいと思います。しかし現在、UDP CI はメイン クラスで 1 回インスタンス化されます。そのため、異なるクラスからオブジェクトにアクセスできません。さらに、CI 解析モジュールは、メッセージに応じてアプリ全体の設定/UI/... を変更する必要があります。

したがって:

  1. 複数のオブジェクトが必要ない場合でも、インスタンス化する必要はありますか?
  2. クラス内のすべてを静的にするのは良い選択ですか?
  3. ある時点で、逆に話す必要があります (obj->main)。コールバックを使用するか、必要なリソースをメインから CI に渡して CI で処理する必要がありますか?

問題を十分に明確に説明したことを願っています。ご不明な点がございましたら、お尋ねください。

4

3 に答える 3

2

アプリケーションコンテキスト(シングルトン)に保存します。または、サービスで接続を行い、必要に応じて各アクティビティにデータを取得させます。

于 2013-01-25T12:19:58.053 に答える
0

異なるクラスにはのインスタンスが必要なようです。または正式に言えば、に依存していUDP Clます。これに対処するために、2つのオプションがあります-

  • 依存性注入フレームワークを使用します。たとえば、guiceを使用して、このような依存性をさまざまなクラスに自動的に注入します。
  • 昔ながらの方法-UDPClを必要とするすべてのクラスのシングルトンを作成し、のインスタンスを取得するようなことを行うことができますUDP ClUDBCl.getInstance()UDP Cl

私は個人的に方法1を好みます。それは、単体テストに適しているからです。方法2の方が問題をより早く解決できます

于 2013-01-25T12:22:54.490 に答える
0

2 番目のクラスで最初のクラスのインスタンスを作成します。また、バンドルを使用してクラス間でデータを転送することもできます。

于 2013-01-25T12:55:03.917 に答える