背景:Android:複数のインスタンスアイテムにコールバックを登録し、インスタンスコールバックへのonEventsを返す最良の方法は何ですか?
- 私はAndroid用Javaを使用しています。
問題:
- 私は、ユーザーがオブジェクトの複数のインスタンスを作成し、(エラーコールバックを考える)各インスタンスにコールバックインタフェースを登録できるようにしたいです。
- オブジェクトには複数の子/サブクエリ/ etc ...があります。各子はこのイベントを返すことができます。
- アプリのライフタイム全体で1〜10のインスタンスが必要です。
- 私は、シングルトン/静的イベントリスナーの使用を避けようとしています。
可能な解決策(およびそれらを使用しないことの理由):
1)各親オブジェクトのインスタンスでBroadcastReceiverを登録し、それぞれの壮大な子供がテントのレベルにイベントを通知することができます。これは、メインオブジェクトがイベントについて私のユーザーに通知できるようにする必要があります。 問題は、複数のインスタンスが複数のBroadcastReceiversを必要とすることです。これは重くなるか、または最適ではないと予想されます。
2)BroadcastReceiverを1つ登録し、イベントの通知を受けるオブジェクトのインスタンスを決定し、実際にそれを送信する方法を見つけます。問題は、オブジェクト自体に通知する方法がわからないことです。
3)コールバックインターフェースをparentからchild/grandchilren/etcの各引数に渡すようにします。しかし、これは面倒です。
4)EventBusライブラリのようなものを使ってください(これはBroadcastReceiverと同じものですが、Reflectionベースのものだから遅くなります)。
5)他に何かありますか?
私はあなたがしていることについて完全に明確ではありませんが、Observer/Observableについてはどうですか? – nasch
私はObsrの下にあります。パターンは、1つのオブジェクトを聴いているm個のオブジェクトに使用されます。複数のサブオブジェクトからイベントを識別し、複数のリスナーオブジェクトのいずれかに通知するために、1つのオブジェクトが必要です。 –