1

我设置了一个警报以显示相应的Notification. 的PendingIntent用于Notification启动 Gluon App 主类。为了显示ViewhomeView 以外的其他内容,我调用switchView(otherView)了该postInit方法。显示了 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);
    }
}
4

1 回答 1

1

当从另一个线程触发与 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));
    }
}
于 2016-06-20T12:32:29.647 回答