複数の断片でいくつかのアクティビティを持つアンドロイドアプリです。 これらのアクティビティまたはフラグメントは、backStackの上部になくても、異なるサービスから通知を受け取っていても、実行中である可能性があります。シントンダイアログの作り方
何らかのイベントが発生した場合、ユーザーと通信するためのダイアログを表示する必要があります。スタックの上のアクティビティまたはフラグメントには、そのイベントのハンドラがない場合があります。興味のある他のアクティビティやフラグメントは、反応して1つのダイアログをユーザーに開く必要があります。
問題は、イベントやイベントを処理するフラグメントのリスナーが、すでに同じダイアログが表示されているかどうかを個別に知ることではありません。
ハンドラがダイアログを開くべきかどうかを判断する最も良い方法は何ですか? このダイアログは同じイベントで同じですので、シングルトンとして持つことができれば役に立ちます。
このような状況では、誰かがダイアログをシングルトンにする方法はありますか?
ありがとうAtrem!単一のデータインスタンスは問題ではありません。 1つのアクティビティのコンテキストに関連付けられたダイアログが表示されます。ここで、複数のアクティビティまたはフラグメントがダイアログを表示するためのイベントを受け取る場合、ダイアログが表示されているかどうかを判断することは困難です。たぶん、singleTaskまたはsingleInstanceのいずれかでアクティビティを作成すると、どんな考えが助けになるでしょうか? – lannyf
私は、ダイアログボックスへのリンクを単一インスタンスクラスに保存することをお勧めします。その場合、メソッド 'ensureShowDialog(Context context)'を作成します。このメソッドは、現在のダイアログが表示されているかどうかをチェックします。はいの場合は、ダイアログを表示することができます。別のcasrでは、新しいデータをダイアログに渡すことができます。 –