RxRetainFragment icon indicating copy to clipboard operation
RxRetainFragment copied to clipboard

Background work2

Open crysan opened this issue 8 years ago • 13 comments

Далее еще вопрос ;) Если после сворачивания приложения его развернуть, то мы получаем замершее окно диалога. Как реанимировать? На простом примере:

        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 продолжает свою работу в штатном режиме.

Спасибо!

crysan avatar Mar 18 '16 06:03 crysan

попробуйте создавать RetainFactory.create в onCreate(), а подписываться на события в onResume() через subscribe()

rovkinmax avatar Mar 18 '16 06:03 rovkinmax

Попробовал. Смотрите, изначально мы подписываться при нажатии на кнопку. Когда мы в onResume() подписываемся заново, то вот что происходит: Сворачиваем и разворачиваем программу. Видим замерший progressbar. Через некоторое время он начинает работать с НУЛЯ! Т.е. получается, что мы 2 раза подписались и эти подписки отработали ДВА раза ((

crysan avatar Mar 18 '16 06:03 crysan

Есть еще варианты или пример?

crysan avatar Mar 20 '16 12:03 crysan

Прошу вашей помощи.

crysan avatar Mar 22 '16 04:03 crysan

К сожалению у меня пока что нет времени помочь. Я помню об этом, ситуация интересная.

rovkinmax avatar Mar 22 '16 10:03 rovkinmax

Хорошо. Буду ждать.

crysan avatar Mar 22 '16 11:03 crysan

Путем проб и ошибок пришел к следующему: При повороте Окно диалога с прогресс баром реагирует корректно, продолжая свою работу. При сворачивании и разворачивании программы окно так же работает корректно до окончания процесса. ОДНАКО после того как прогресс отработал мы закрываем окно и видим опять Окно с прогресс баром на том значении, которое было до сворачивания программы. Если устройство повернуть - то она пропадает. Такое ощущение, что сохраняется старое окно (то что было до момента сворачивания) и висит позади текущего.

Что можно в таком случае сделать?

crysan avatar Apr 09 '16 00:04 crysan

Идеи?

crysan avatar Apr 18 '16 03:04 crysan

В общем я попробовал сделать, чтобы прогресс продолжался после поворота, проблем не возникло. Как мне кажется ваша проблема в том, что вы подписываетесь в onResume. Если надо, то покажу пример, только я сделал его на котлине, чтобы быстрей выбыло.

rovkinmax avatar Apr 25 '16 08:04 rovkinmax

вот пример в репозитории ProgressActivity

rovkinmax avatar Apr 25 '16 08:04 rovkinmax

Спасибо за пример. Однако я указал, что проблем с ПОВОРОТОМ уже нет. Есть проблемы при СВОРАЧИВАНИИ и РАЗВОРАЧИВАНИИ приложения. Прошу проверить ваш пример именно для этих операций. Спасибо!

crysan avatar Apr 26 '16 02:04 crysan

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

rovkinmax avatar Apr 27 '16 10:04 rovkinmax

Попробую. Благодарю!

crysan avatar Apr 28 '16 01:04 crysan