Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
#1

Как закрыть фрагмент - Программирование Android

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

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

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

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

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

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

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

Как сделать определенный фрагмент стартовым? - Программирование Android
В приложении есть стартовый фрагмент со списком... Необходимо сделать стартовым другой фрагмент.. С помощью чего это делается?

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

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

Searchview закрыть поиск программно, также как закрывается кнопкой back - Программирование Android
Осуществляется поиск по списку listview, нужно при клике на элемент списка, чтобы закрывался поиск, также как он закрывается при нажатии ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bend3r
149 / 136 / 18
Регистрация: 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
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
15.12.2015, 21:27  [ТС] #3
Я сделал через костыль. Устанавливал константу как флаг и при запуске фрагмента смотрел ее состояние. Если константа была сброшена, то просто вызывал заново загрузку активити.
0
YuraAAA
1574 / 1316 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
15.12.2015, 23:51 #4
Цитата Сообщение от Alexvp Посмотреть сообщение
Если константа была сброшена, то просто вызывал заново загрузку активити.
Если честно, это ужас)
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
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
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
16.12.2015, 15:55  [ТС] #7
Это я знаю. Но в моем случае получается слишком громоздко. Фрагменты листаются через Swipe и кроме того, что на экране, другой формируется предварительно. На каждом фрагменте много данных из базы. Поэтому проще оказалось сделать через упомянутый костыль с перезагрузкой.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2015, 15:55
Привет! Вот еще темы с ответами:

Как прикрутить "свой браузер" к странице - "фрагмент" - Программирование Android
здравствуйте. все, уже голову сломал. не соображаю совсем. не получается прикрутить код браузера к странице fragments.выводиться должно на-...

Фрагмент и карты - Программирование Android
прочитал что MapView должен быть обязательным образом наследован от MapActivity как можно MapActivity превратить в один из фрагментов ? ...

Фрагмент во фрагменте - Программирование Android
Добрый день. А возможно ли создание фрагмента состоящего из нескольких фрагментов?

Активити и фрагмент - Программирование Android
в фрагменте у меня есть функция public void setBmp(Bitmap bmp) { } в активити я использую Fragment f =...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.12.2015, 15:55
Ответ Создать тему
Опции темы

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