Андроид проблемы с fragment

369
22 января 2017, 14:28

Здравствуйте.Имеются два фрагмента А и Б.На фрагменте А есть кнопка по нажатию на которую открывается фрагмент Б и запоминается в стеке addToBackStack.Фрагмент Б в потоке делает свои дела и после отработки фрагмент Б должен скрыться popBackStack.Все работает как надо до тех пор пока я не нажал кнопку домой.Нажал кнопку домой приложение скрылось, но поток еще работает,закончив работу он вызывает getFragmentManager().popBackStack() и тут мы фрагмент Б не скрывается а остается.Далее если в процессе работы потока заблокировать экран то приложение падает с ошибкой

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState

Как сделать так что бы getFragmentManager().popBackStack() работал и при свернутом приложении и при заблокированном экране?

Answer 1

У вас архитектурная проблема. У вас "слеплены" длительная операция в фрагменте и сам фрагмент.

Если эта операция неотделима от фрагмента, при наступлении onPause()/onStop() операция тоже должна остановиться.

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

READ ALSO
Парсинг json файла из json

Парсинг json файла из json

Есть json файл, данные которого после парсинга выводятсяОдин из объектов хранит в себе ссылку на другой json-файл

374
Как обновить JavaFX API?

Как обновить JavaFX API?

Привет всем! Только начинаю знакомиться с JavaFX и обнаружил множество проблем связанных с нимВо время сборки приложения в среде IDEA, в консоли...

677
Озвучка текста из строки (Java)

Озвучка текста из строки (Java)

Каким образом можно реализовать озвучку строки (из того же NetBeans под Windows,не под Android!) при помощи встроенного синтезатора речи Android

692
Jackson 2 и Конвертация java объекта в json

Jackson 2 и Конвертация java объекта в json

Добрый деньПытаюсь отправить объект из спринг контроллера на ангуляр и на вьюшку:

545