Я начал использовать библиотеку шины событий Otto для обновления интерфейса (действий) из различных компонентов в моем Приложение для Android. Например, когда вносятся изменения в класс модели, я отправляю сообщение в шину событий или, если AsyncTask
завершился, я отправляю событие в шину событий в методе onPostExecute
.
Пока что я использую одну шину событий для обновлений пользовательского интерфейса. Я заметил, что даже приостановленные действия еще получают эти события. В документации указано
Приостановленное действие не получает пользовательского ввода и не может выполнить какой-либо код.
Что я считаю спорным, я могу только объяснить это тем, что этот код, конечно, выполняется в другом потоке, но все еще находится в действии.
Мой вопрос: приводит ли такое использование к каким-либо недостаткам? Наличие нескольких приостановленных действий, выполнение событий, обновление элементов (приостановленных) действий или их игнорирование. Приводит ли это к заметным накладным расходам, или я могу их игнорировать?
Есть ли другой подход, когда кто-то хочет использовать шину событий для обновления интерфейса?
onPause
? Это не похоже на вас, если вы заметили, что приостановленные действия обновляются. Одним из недостатков может быть то, что приостановленные действия могут быть уничтожены, поэтому, если вы полагаетесь на получение событий во время приостановки для согласованности пользовательского интерфейса / данных, вы можете столкнуться с проблемами. - person swanson   schedule 24.06.2014