Проблема с отправкой сервера, когда 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("");
        }
    }

Спасибо, Флориан

0 ответов

Другие вопросы по тегам