从通知启动 Gluon App 的特定视图
Start specific view of Gluon App from a notification
我设置了一个闹钟来显示相应的Notification
。 Notification
的PendingIntent
用于启动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));
}
}
我设置了一个闹钟来显示相应的Notification
。 Notification
的PendingIntent
用于启动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));
}
}