Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Background work2 #6

Open
crysan opened this issue Mar 18, 2016 · 13 comments
Open

Background work2 #6

crysan opened this issue Mar 18, 2016 · 13 comments

Comments

@crysan
Copy link

crysan commented Mar 18, 2016

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

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

Спасибо!

@rovkinmax
Copy link
Owner

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

@crysan
Copy link
Author

crysan commented Mar 18, 2016

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

@crysan
Copy link
Author

crysan commented Mar 20, 2016

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

@crysan
Copy link
Author

crysan commented Mar 22, 2016

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

@rovkinmax
Copy link
Owner

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

@rovkinmax rovkinmax reopened this Mar 22, 2016
@crysan
Copy link
Author

crysan commented Mar 22, 2016

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

@crysan
Copy link
Author

crysan commented Apr 9, 2016

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

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

@crysan
Copy link
Author

crysan commented Apr 18, 2016

Идеи?

@rovkinmax
Copy link
Owner

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

@rovkinmax
Copy link
Owner

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

@crysan
Copy link
Author

crysan commented Apr 26, 2016

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

@rovkinmax
Copy link
Owner

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

@crysan
Copy link
Author

crysan commented Apr 28, 2016

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants