Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
globalEventListener.registerListeners(this);
globalEventManager.unregisterListeners(this);
@Event(ThreadType.UI)
public void onSomeEvent(SomeEvent event) {
// some UI work
}
@Singleton
public class SomeBackground {
@Inject
private GlobalEventManager globalEventManager;
@Inject
public void init() {
globalEventManager.registerListeners(this);
}
@Event(ThreadType.TP)
public void onStartBackgroundWork(BackgroundTaskEvent event) {
// some work
globalEventManager.fire(new PublishResultsEvent(results));
}
}
public class SomeActivity extends RoboActivity {
@Inject
private GlobalEventManager globalEventManager;
@Override
public void onCreate(Context context) {
super.onCreate(context);
globalEventManager.registerListeners(this);
}
@Override
public void onDestroy() {
super.onDestroy();
globalEventManager.unregisterListeners(this);
}
public void onButtonClickListener() {
globalEventManager.fire(new BackgroundTaskEvent(...));
}
@Event(ThreadType.UI)
public void onShowResults(PublishResultsEvent event) {
// show results in GUI
}
}
Чем дольше я программирую, тем больше мне нравятся слабосвязанные системы, которые состоят из большого числа разрозненных единиц (модулей), ничего не знающих друг о друге, но предполагающих существование других.
Событийное программирование — это огромный антипаттерн
Каркас для Event-Driven программирования