То, что вы можете сделать, это иметь один UrlManager, подобный этому:
public class UrlManager implements ValueChangeHandler<String> {
public UrlManager() {
History.addValueChangeHandler(this);
}
public void onValueChange(ValueChangeEvent<String> event) {
String historyToken = event.getValue();
}
}
Сохранение каждого маркера истории в список.
Если это абсолютно новый токен истории, добавьте его в список.
Если это предыдущий токен истории, то была нажата кнопка «Назад».
Я предлагаю использовать список для сохранения токенов и сохранения итератора, который может перемещаться вверх и вниз по списку. Так что изначально он указывает на конец списка. Если новый токен является предыдущим элементом в списке, то была нажата кнопка «Назад».
Если вы находитесь в середине списка (несколько раз назад) и появляется новая запись (нажата новая ссылка), удалите оставшуюся часть списка (больше не могу идти вперед) и добавьте новую переместить итератор к этому элементу.
Вы поняли.