Я начинаю использовать EventBus 3.0.0.Является ли Greenrobot EventBus липким событием заказа гарантированным?
У меня 3 липкие события должны быть отправлены из услуг в деятельности:
- действие началось
- прогресс действие
- акция завершилась
я слушаю события на основной резьбе:
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void on...Event(... event) {
...
}
Служба отправляет события по порядку: started-progressN-..-progressM-finished
, а подписанная активность обновляет пользовательский интерфейс в соответствии с событиями.
После того, как действие повернуто, я ожидаю получить липкие события в том порядке, в котором они были отправлены, так как иначе он разрывает ui (так как при запуске устанавливается прогресс 0). Является ли порядок событий гарантированным EventBus (предполагая, что я использую тот же EventBus, тот же поток приемника, тот же самый подписчик для всех этих событий)?
В соответствии с моими испытаниями не гарантируется, и это особенность/проблема, не так ли?
перед тем вращения:
07-27 11:27:55.254 27910-27910/ app D/App﹕ status Compilation started ...
07-27 11:27:55.254 27910-27910/ app D/App﹕ compile progress 0%
07-27 11:27:55.354 27910-27910/ app D/App﹕ compile progress 20%
07-27 11:27:55.354 27910-27910/ app D/App﹕ compile progress 30%
07-27 11:27:55.354 27910-27910/ app D/App﹕ compile progress 40%
07-27 11:27:55.844 27910-27910/ app D/App﹕ compile progress 50%
после поворота (липкие события возмущаться):
07-27 11:27:59.554 27910-27910/ app D/App﹕ compile progress 50%
07-27 11:27:59.554 27910-27910/ app D/App﹕ status Compilation started ...
И ваши события 'status' отличаются от ваших событий' progress', правильно? –
они разные классы – 4ntoine