Подтвердить что ты не робот

Как обрабатывать вращение с помощью Retrofit и RxJava/RxAndroid в действии?

Я читаю здесь, что мы можем использовать некоторый глобальный кеш для обработки вращения.

Это можно предотвратить с помощью кеш-памяти или повторить операции Observable, убедившись, что Observable каким-то образом переживает жизненный цикл Activity (например, сохраняя его в глобальном кеше, в фрагменте и т.д.)

Но как этого добиться? Кто-нибудь может указать мне на пример, как это сделать? Или, может быть, вы знаете, какой подход лучше подходит для изменения конфигурации?

EDIT:

На данный момент я нашел много способов, но в итоге я использовал реализацию RxBus. Хорошим примером использования RxBus вы можете найти здесь.

4b9b3361

Ответ 1

Я сделал демонстрационное приложение (https://github.com/pmellaaho/RxApp), чтобы поэкспериментировать с тем, как решать ситуации в приложении Android. Короче говоря, я использую одноэлементную модель из Activity для получения ответа от сети. Это позволяет кэшировать ответы, получать доступ к данным из нескольких компонентов пользовательского интерфейса, подписываться на ожидающий запрос, а также предоставлять макетные данные для автоматизированных тестов пользовательского интерфейса.

Ответ 2

Недавно я использовал Loader в сочетании с ConnectableObservable для обработки лучших поворотов во время потока RxJava2. Я даже создал ссылку Средняя почта, подробно объясняющая мой подход.

В принципе, вы должны поместить наблюдаемый (ConnectableObservable) в Loader с помощью Transformer, а затем снова подпишитесь на него, когда возобновление активности/фрагмента после уничтожения.