Я нашел несколько статей, говорить о том, как RxJava/RxAndroid может заменить шины событий (например otto)RxAndroid, автобус событие и активность Жизненный цикл
- https://lorentzos.com/rxjava-as-event-bus-the-right-way-10a36bdd49ba#.7a4619qva
- https://medium.com/mobiwise-blog/use-rxjava-instead-of-event-bus-libraries-aa78b5023097#.ew28h2urf
цитата из первая статья:
Отто с площади официально устарел в предыдущие дни. В мире Android мы можем подбодрить теперь что-то вроде «EventBusses мертвы долго живут RxJava».
Существует одна вещь, которую я пропускаю, хотя:
Одним из преимуществ автобусов событий является то, что они помогают много с жизненным циклом деятельности в том, что вам не нужно управлять регистрацией/регистрацией для обратных вызовов вручную (и, таким образом, избежать утечек памяти легко)
Пример потока:
- активность присоединяется к событию, для получения композиций (скажем, SongsAvailableEvent)
- Мы просим песню (мы делаем запрос сети)
- Меняют устройство ориентации в середине запрос
- Деятельность умирает, и новая построена, который также подписался на SongsAvailableEvent
- Новая активность получает событие и обновляет интерфейс, а старая активность (который теперь мертв) не получает событие (яй!)
статьи выше, делают его похожим на этот поток будет «решена» по RxAndroid/RxJava, но при использовании Rx вам все равно необходимо подписаться/отказаться от подписки на Observable вручную, когда вы измените ориентацию устройства. Более того, если я хочу «повторно использовать» запрос, сделанный в Observable, мне нужно как-то его сохранить, чтобы я подписался на тот же Observable в новом действии (я не совсем уверен, как это сделать, но это не точка :)).
Мой вопрос: эта проблема легко разрешима с помощью чистого RxAndroid/RxJava, или мне все еще нужно использовать Rx с шиной событий/расширением Rx, используя что-то вроде RxLifecycle (что усложняет ситуацию, так как я не управляю своими наблюдениями в уровень представления)?
Я не хочу звонить отписаться вручную, то есть подвержен ошибкам. С otto я могу отменить регистрацию (это) в базовом классе Activity, и мы закончили, но с использованием Rx мне нужно отслеживать мои наблюдения. Что касается погрузчиков, они отлично подходят для наборов данных, но для некоторых запросов они являются более сложными – dors