Альтернатива Android Event Bus

Контекст. В предыдущем приложении для Android, которое я разработал, я использовал шину событий ( отто по квадрату) для обработки результатов async-задачи (например: результат запроса сервера отправлен на шине, а где-то в приложении я перехватываю этот ответ ). Хотя это и делало эту работу, в какой-то статье, которую я прочитал, было упомянуто, что использование такого автобуса – довольно плохая идея, так как считается антипаттерном .

Почему это так? Каковы некоторые альтернативы использованию шины событий при работе с результатами асинхронных операций? Я знаю, что большую часть времени нет стандартного способа обработки вещей, но есть ли «более канонический» метод?

Используйте RxJava и Retrofit для асинхронных сетевых вызовов. RxJava предоставляет поддержку для Retrofit .

Возврат Observable от модифицированного интерфейса.

 @GET("/posts/{id}") public Observable<Post> getData(@Path("id") int postId); 

Используйте его в своем классе активности –

 retrofitBuilderClass.getApi() .getData() .subscribeOn(Schedulers.newThread()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer < List < Data >> () { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(List < Data > data) { // Display data } });