Я только что закончил свой первый собственный пример с мероприятиями / местами и MVP.все работает нормально, но некоторые события не отправляются и не принимаются должным образом, если я перехожу на другое место (из другого места).но на "moduleLoad", где это место установлено как место по умолчанию, все работает нормально.я думаю, что это не должно иметь значения, если место / действие запускается на moduleLoad (через historyHandler = new PlaceHistoryHandler (historyMapper); historyHandler.register (placeController, eB, defaultPlace); historyHandler.handleCurrentHistory ();) или через placeController.Goto (место);Не так ли?
с помощью отладки я проверил порядок регистрации событий, отправки событий и получения событий (все выполняется в начале (...) действия).проблема в том, что все получатели не получают событие, если start () выполняется через goTo (место) (регистрация и отправка работает нормально).Но если событие отправляется после start () или внутри start () - выполняется на moduleLoad, все работает отлично!
мой запуск активности выглядит так:
@Override
public final void start(final AcceptsOneWidget panel, final EventBus eventBus) {
// register events - to manipulate visibility of some display areas
eventBus.addHandler(SelectedEvent.TYPE, this);
//initiate presenters -(pseudo code)
[presenter that receives SelectedEvent]
[presenter that sends SelectedEvent]
//ading presenter's asWidgets to screen -> panel.setWidget..
...
}
@Override
public final void onSelected(final SelectedEvent event) {
//do something
}
(вариант использования дляотправка этого события при запуске состоит в том, что я хочу сказать, что ничего не выбрано - полезная нагрузка события равна нулю)
проблема состоит в том, что ни метод докладчика, ни метод onSelected действия не вызывается, если start () вызывается черезидти к.Но во всех случаях (проверено отладчиком) регистрация события происходит перед его отправкой.что мне делать?