Отмена повторяющегося таймера GWT - PullRequest
0 голосов
/ 27 июня 2018

У меня есть сценарий, в котором я должен обновлять GWT Grid каждые 10 секунд, чтобы обновить состояние элементов в этой сетке. Это логика:

        Timer timer = new Timer(){
            @Override
            public void run(){
               //make server call to update grid
            }
        };

        timer.scheduleRepeating(10000);

Моя проблема заключается в следующем: таймер запускается, когда отображается эта сетка, то есть когда вызывается докладчик, но нет способа остановить таймер. Переход к другому представлению не мешает таймеру делать серверные вызовы каждые 10 секунд. Есть ли способ остановить таймер, как только пользователь перейдет к другому виду? Приложение должно постоянно обновлять статус, поэтому отмена должна происходить, когда сетка больше не отображается.

1 Ответ

0 голосов
/ 27 июня 2018

В виджет или композит (вид), который содержит таймер добавить:

@Override
protected void onUnload() {
    timer.cancel();
}

Этот метод вызывается непосредственно перед тем, как виджет будет отсоединен от документа браузера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...