RxRetainFragment
RxRetainFragment copied to clipboard
Background work2
Далее еще вопрос ;) Если после сворачивания приложения его развернуть, то мы получаем замершее окно диалога. Как реанимировать? На простом примере:
rotateExample = RetainFactory.create(getFragmentManager(), yourAwesomeObservable, new EmptySubscriber<String>() {
@Override
public void onStart() {
//show load progress.
//It will be called after rotation
}
@Override
public void onNext(String result) {
progressbar.setProgress(Integer.valueOf(result));
}
},"MY_FIRST_TAG");
После восстановления окна progressbar замерший. Хотя RetainFactory продолжает свою работу в штатном режиме.
Спасибо!
попробуйте создавать RetainFactory.create в onCreate(), а подписываться на события в onResume() через subscribe()
Попробовал. Смотрите, изначально мы подписываться при нажатии на кнопку. Когда мы в onResume() подписываемся заново, то вот что происходит: Сворачиваем и разворачиваем программу. Видим замерший progressbar. Через некоторое время он начинает работать с НУЛЯ! Т.е. получается, что мы 2 раза подписались и эти подписки отработали ДВА раза ((
Есть еще варианты или пример?
Прошу вашей помощи.
К сожалению у меня пока что нет времени помочь. Я помню об этом, ситуация интересная.
Хорошо. Буду ждать.
Путем проб и ошибок пришел к следующему: При повороте Окно диалога с прогресс баром реагирует корректно, продолжая свою работу. При сворачивании и разворачивании программы окно так же работает корректно до окончания процесса. ОДНАКО после того как прогресс отработал мы закрываем окно и видим опять Окно с прогресс баром на том значении, которое было до сворачивания программы. Если устройство повернуть - то она пропадает. Такое ощущение, что сохраняется старое окно (то что было до момента сворачивания) и висит позади текущего.
Что можно в таком случае сделать?
Идеи?
В общем я попробовал сделать, чтобы прогресс продолжался после поворота, проблем не возникло. Как мне кажется ваша проблема в том, что вы подписываетесь в onResume. Если надо, то покажу пример, только я сделал его на котлине, чтобы быстрей выбыло.
вот пример в репозитории ProgressActivity
Спасибо за пример. Однако я указал, что проблем с ПОВОРОТОМ уже нет. Есть проблемы при СВОРАЧИВАНИИ и РАЗВОРАЧИВАНИИ приложения. Прошу проверить ваш пример именно для этих операций. Спасибо!
я вспомнил, что продумывал такой кейс еще на этапе разработки. Дело в том, что решение основано на ретэйн фрагменте, а это значит, что нельзя гарантировать сохранность данных при сворачивании, так как активити может быть легко прихлопнуто системой. Я бы рекомендовал очень аккуратно этим пользоваться. У меня так же не возникло проблем со сворачиванием и разворачиванием активити. тоже самый файл по ссылке выше.
Попробую. Благодарю!