In Android App, mit ein paar Aktivitäten mit mehreren Fragmenten. Diese Aktivitäten oder dieses Fragment können aktiv ausgeführt werden, auch wenn es sich nicht auf dem BackStack befindet und Benachrichtigungen von verschiedenen Diensten empfangen werden.wie man einen Singlet Dialog macht
Wenn ein Ereignis eintritt, muss ein Dialogfeld zur Kommunikation mit dem Benutzer angezeigt werden. Die Aktivität oder das Fragment oben auf dem Stapel verfügt möglicherweise nicht über den Handler für dieses Ereignis. Jede andere Aktivität oder jedes Fragment, das interessiert ist, sollte reagieren, um einen Dialog für den Benutzer zu öffnen.
Das Problem ist, die Listener in den Aktivitäten und Fragmente, um die Ereignisse unabhängig zu behandeln wissen nicht, ob bereits der gleiche Dialog angezeigt wurde.
Was ist der beste Weg zu sagen, ob der Handler den Dialog öffnen soll oder nicht? Da dieser Dialog für dasselbe Ereignis identisch ist, kann es hilfreich sein, wenn er als Singleton verwendet werden kann.
Jeder hat einen Vorschlag, wie man den Dialog für diese Art von Situation zu einem Singleton machen kann?
Dank Atrem! Eine einzelne Dateninstanz ist kein Problem. Der Dialog, der dem Kontext einer Aktivität zugeordnet ist, ist. Wenn in diesem Fall mehrere Aktivitäten oder Fragmente das Ereignis zum Anzeigen des Dialogs erhalten, ist es schwierig festzustellen, ob der Dialog angezeigt wurde. Vielleicht könnte eine Aktivität mit singleTask oder singleInstance helfen, jeder Gedanke? – lannyf
Ich schlage vor, Link zu dem Dialog in Einzelinstanz Klasse zu speichern. In diesem Fall erstellen Sie die Methode 'useShowDialog (Kontext Kontext)'. Diese Methode würde den aktuell angezeigten Dialog überprüfen oder nicht. Wenn ja, können Sie den Dialog anzeigen. In einem anderen Fall können Sie neue Daten an den Dialog übergeben. –