Как стать автором
Обновить

Комментарии 5

Использование AsyncTask’ ов было неудобным потому что:

1) Чтобы получить превью какого-нибудь места, необходимо было сначала сделать запрос для получения информации о всех местах, которые находились рядом с выбранным пользователем местом.

2) По полученным Id сформировать и отправить запрос о получении фотографии-превью.

3) При клике на превью получить все картинки относящиеся к этому месту.

Таким образом, при использовании AsyncTask’ов получался некий «водопад» и пришлось бы использовать один AsyncTask внутри другого. И тогда, погуглив, я нашел информацию о паттерне Command Processor, который отлично справляется с задачами, описанными выше.


Вам прямая дорога к RxJava, серьезно :) Это проще, чем паттерн Commander, отлично параллелится, комбинируется, пишется и читается.
Спасибо за совет, да, наслышан о нем. Но хотелось избежать black-boxy вещей и сделать все вручную.Теперь с RxJava начну экспериментировать.
Кажется, какой-то EventBus все очень бы упростил.
Не очень удачная реализация. Никак не обрабатывается поворот экрана, на activity хранится жесткая ссылка, которую не заменить, значит при её пересоздании мы не сможем даже результат вернуть. Как верно было замечено с EventBus всё бы было проще.
Да, использование EventBus в данном примере было бы проще. А что если у вас много реквестов и они могут быть взаимосвязаны? К примеру запрос на получение Id и следующий за ним запрос на картинку по этому Id? В данном случае использование только EventBus приведет к большому количеству событий (и не только с обработкой в Activity, но и в классах-реквестах), и возможно будет полезным использовать EventBus только для обновления UI а управлять запросами можно через handler, то есть MessageController в данном примере. Ну или как сказали выше использовать RxJava
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории