Создайте HistoryListener и добавьте его History.addHistoryListener(myListener);
У интерфейса предусмотрено событие onHistoryChanged. По этому событию вам придётся закрывать/открывать необходимые диалоги..
UPD1:
Ну так это зависит от того, каким образом вы эти диалоги создаёте и от того, какой паттерн вы применяете. В случае MVP вполне можно presenter подписать на историю и при переходе на элемент истории, не связанный с диалогом, диалог может совершить суицид :)
А можно сделать какой-нибудь DialogManager, который бы знал обо всех открытых диалогах и грохал ненужные в случае чего.