Допустим, что у нас есть приложение с одной кнопкой - отправить запрос на добавление сообщения в чат. По нажатию на нее у нас появляется на экране лоадер, и отсылается запрос на сервер.
Пока выполняется запрос, у нас может произойти событие:
С первыми двумя пунктами все понятно - сохраняем состояние в onSaveInstanceState и восстанавливаем в onRestoreInstanceState. Сам запрос к серверу живет в интеракторе, и соответственно не уничтожается при уничтожении активити, поэтому после переворота - узнаем выполняется ли еще запрос. Если да - тогда подписываемся на ответ, если уже выполнился - получаем результат.
Третий пункт тоже нормально укладывается в логику - после восстановления обнаружим, что запроса в интеракторе вообще нет и снова создаем новый запрос к серверу.
А вот что делать с четвертым пунктом мне не понятно. Необходимо сохранить и состояние, что запрос выполнился, и результат этого запроса. Однако onSaveInstanceState уже выполнился, и добавить данные в бандл, вроде как, мы уже не можем. В тоже время, городить кучу моделей для каждого запроса+состояния и тем более хранить это все в БД - кажется каким-то оверхедом.
Может быть кто-нибудь сможет мне рассказать, как же правильно обработать такую ситуацию? Или может быть я вообще неправильно построил архитектуру и надо мыслить в другую сторону?
Вам нужно где-то глобально хранить что-то простое типа timeStamp, который будет обновлять интерактор при успешном завершении.
Соответственно в onRestoreInstanceState считываете timeStamp начала запроса и сравниваете с глобальным timeStamp. Делаете выводы.
Самое простое, что пришло в голову.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мой код
Есть фильтр который передает управление определенному сервлету таки образом:
Как из проекта в Android Studio сделать apk-файл для скачивания на другие устройства?
Добрый день! Пытаюсь освоить StreamingConnection в Hive по документации