2016-06-19 18 views
1

Ich habe einen Alarm eingerichtet, um eine entsprechende Notification anzuzeigen. Die PendingIntent der Notification wird verwendet, um die Gluon App-Hauptklasse zu starten. Um eine View andere als die HomeView zu zeigen, rufe ich switchView(otherView) in der postInit Methode auf. OtherView wird angezeigt, aber ohne AppBar. Während es möglich ist, die AppBar erscheinen zu lassen, frage ich mich, ob dies der richtige Ansatz ist.Start spezifische Ansicht von Gluon App von einer Benachrichtigung

@Override 
public void postInit(Scene scene) { 
    // additional setUp logic 

    boolean showReadingView = (boolean) PlatformProvider.getPlatform().getLaunchIntentExtra("showReadingView", false); 
    if (showReadingView) { 
     switchView(READING_VIEW); 
    } 
} 
+0

Haben Sie 'versucht, mit' Platform.runLater():

Dies sollte getan werden? Beachten Sie, dass das Ereignis von der Android-Ebene in einem Hintergrundthread stammt. –

+0

Ja, das funktioniert. Danke – jns

+0

Ich werde es dann als Antwort hinzufügen –

Antwort

1

Wenn etwas von einem anderen Thread zu dem JavaFX Faden bezogenen Triggerung, haben wir Platform.runLater() zu verwenden.

Es ist ein klarer Fall dieser Situation: der Android-Thread ruft eine ausstehende Absicht auf, und als Ergebnis wird die App erneut gestartet.

@Override 
public void postInit(Scene scene) { 
    // additional setUp logic 

    boolean showReadingView = (boolean) PlatformProvider.getPlatform().getLaunchIntentExtra("showReadingView", false); 
    if (showReadingView) { 
     Platform.runLater(() -> switchView(READING_VIEW)); 
    } 
}