Проблема с отправкой сервера, когда PWA в фоновом режиме
У меня есть приложение Vaadin 24, использующее PWA и PUSH. У меня есть панель мониторинга с фоновым потоком, основанная на учебнике, которая время от времени проверяет, завершена ли основная задача и изменено ли состояние кнопки в приложении. Проблема, с которой я сталкиваюсь, заключается в том, что если я помещаю приложение PWA в фоновый режим (не закрываю), а затем снова помещаю его на передний план, мне нужно обновить страницу приложения, чтобы увидеть изменения кнопок. Однако фоновый поток все еще работает, если я смотрю журналы. Если я добавлю кнопку обновления, которая классифицирует тот же метод, что и поток, изменения пользовательского интерфейса будут применены.
Server push и PWA — это что-то новое для меня, надеюсь, кто-нибудь мне поможет.
Это код темы:
private static Log log = LogFactory.getLog(DashboardThreadForHomeView.class);
private final UI ui;
private final HomeView view;
public DashboardThreadForHomeView(UI ui, HomeView view) {
this.ui = ui;
this.view = view;
}
@Override
public void run() {
try {
// Update the data for a while
while (true) {
for(DashboardComponent component : view.getTaskButtonHasMap()) {
ui.access(() -> component.update());
}
// Sleep
Thread.sleep(3000);
}
} catch (InterruptedException e) {
log.debug("Thread interrupted", e);
}
}
}
Это метод, который вызывается потоком:
public void update() {
this.task = TaskUtil.getTask(task);
if(task.getCurrentTaskExecution() != null) {
// Toogle settings
//execute.setValue(true);
runStopButton.setText("Stop");
} else {
// Toggle settings
//execute.setValue(false);
runStopButton.setText("Start");
// Endtime
this.statusText.setText("");
}
}
Спасибо, Флориан