Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 402
1

Как закрыть фрагмент

12.12.2015, 00:32. Просмотров 873. Ответов 6
Метки нет (Все метки)

Есть главное активити в котором с помощью фрагментов показывается разный контент. Типа таба с очень большим числом вкладок. Информация для фрагментов закачивается из SQLite. Все работает отлично, но проблема возникает при свертывании приложения.
Если приложение открывается сразу после свертывания, то тоже все работает нормально. Если за время, пока приложение находилось в свернутом виде, прошло освобождение ресурсов, то при вновь вызове приложения оно работает некорректно.

Не буду грузить в чем там дело, но методом исключения определил источник проблемы. Надо при вызове метода onDestroy главной активити вызывать finish() для фрагмента.

Попытка вызвать метод Fragment.finish() в методе onDestroy главной активити сталкивается с запретом на вызов non-static.

Подскажите, пожалуйста, как это лучше решить эту проблему?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2015, 00:32
Ответы с готовыми решениями:

Как закрыть фрагмент?
Нужно в самом фрагменте завершить его работу и вернуться обратно, как это реализовать

Как переделать Activity в фрагмент?
Есть своё приложение реализованное с помощью фрагментов. Решил добавить в него простейшую...

Как подключиться к Сервису через Фрагмент ?
Создал Drawer Menu в своём приложении,и мне нужно, в основном фрагменте подключиться к Сервису для...

Как сделать определенный фрагмент стартовым?
В приложении есть стартовый фрагмент со списком... Необходимо сделать стартовым другой фрагмент.. С...

Как сменить один фрагмент на другой по нажатию кнопки
У меня есть два фрагмента. Изначально отображается фрагмент один, но при нажатии на кнопку, нужно...

6
Bend3r
149 / 136 / 35
Регистрация: 29.07.2012
Сообщений: 709
12.12.2015, 14:33 2
Также просто взять и закрыть fragment нельзя, можно просто вернуть предыдущий фрагмент.

Java
1
2
fragmentManager.popBackStack();
            fragmentTransaction.commit();
Да но тогда при вызове фрагмента нужно добавить его в стэк, методом:
Java
1
fragmentTransaction.addToBackStack(null);
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 402
15.12.2015, 21:27  [ТС] 3
Я сделал через костыль. Устанавливал константу как флаг и при запуске фрагмента смотрел ее состояние. Если константа была сброшена, то просто вызывал заново загрузку активити.
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
15.12.2015, 23:51 4
Цитата Сообщение от Alexvp Посмотреть сообщение
Если константа была сброшена, то просто вызывал заново загрузку активити.
Если честно, это ужас)
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 402
16.12.2015, 01:30  [ТС] 5
Согласен , но лучшего варианта не нашел.
0
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
16.12.2015, 10:11 6
сохраняете то, что Вам надо для востановления нормального состояния.
либо в onPause, либо в onSaveInstanceState, а лучше и там и там.
на onResume и onCreate - попытайтесь восстановить то, что было при засыпании.
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 402
16.12.2015, 15:55  [ТС] 7
Это я знаю. Но в моем случае получается слишком громоздко. Фрагменты листаются через Swipe и кроме того, что на экране, другой формируется предварительно. На каждом фрагменте много данных из базы. Поэтому проще оказалось сделать через упомянутый костыль с перезагрузкой.
0
16.12.2015, 15:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2015, 15:55

Как главная активити узнает какой именно фрагмент использовать?
Насколько я понял,можно создавать фрагмент в отдельном xml макете и активити.Потом просто в...

Как закрыть диалог
Я запускаю метод, чтобы залогиниться через FB. Всё происходит с помощью фрагмента, после...

Как закрыть приложение из view activity?
Есть простой класс который расширяется от View в котором нужно завершить другое активити, этот View...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru