从通知启动 Gluon App 的特定视图

Start specific view of Gluon App from a notification

我设置了一个闹钟来显示相应的NotificationNotificationPendingIntent用于启动Gluon App main class。为了显示 homeView 以外的 View,我在 postInit 方法中调用了 switchView(otherView)。显示了 OtherView,但没有 AppBar。虽然可以使 AppBar 出现,但我想知道这是否是正确的方法。

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

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

当从另一个线程触发与JavaFX线程相关的任何事情时,我们必须使用Platform.runLater()

您的情况就是这种情况的一个明显例子:Android 线程正在调用一些挂起的意图,因此应用程序再次启动。

应该这样做:

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

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