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

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

Войти
Регистрация
Восстановить пароль
 
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
#1

Как уничтожить все активити в стеке? - Программирование Android

19.06.2015, 12:21. Просмотров 596. Ответов 6
Метки нет (Все метки)

Всем привет!
Подскажите, как решить следующую задачу:

Активити 1 -> Активити 2 -> Активити 3 -> нажимаю back приложение должно закрыться.

Пробовал играться флагами CLEAR_TOP и NEW_TASK, но приложение все равно переходит на предыдущий экран. В Активити 2 я вышел из ситуации вызовом finish() при запуске Активити 3. Но как убить Активити 1, не пойму.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2015, 12:21     Как уничтожить все активити в стеке?
Посмотрите здесь:
Как вызвать метод в активити классе из обычного не активити класса? Android
На телефоне highscreen 3 на всех активити происходит быстрый самовозврат к главной активити Android
Android Перебрать все элементы активити
Android Изменение параметров активити из другого активити
Вызов новой активити не из класса активити Android
Android Отображение активити поверх другого активити
Как добавить Графику в активити? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
19.06.2015, 12:27     Как уничтожить все активити в стеке? #2
а цель какая? удаление противоречит принципам которым следует андроид
если мешает сотрите все с лейаута когда уйдете с активити
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
19.06.2015, 12:34     Как уничтожить все активити в стеке? #3
так в чём проблема? каждый раз при переходе на другое активити вызывай finish() иначе они ложатся в бекстек
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
19.06.2015, 12:48  [ТС]     Как уничтожить все активити в стеке? #4
так в чём проблема? каждый раз при переходе на другое активити вызывай finish() иначе они ложатся в бекстек
Проблема в том, что переходя с Активити 1 в Активити 2 первое активити убивать нельзя, т.к. в нее я могу еще вернуться кнопкой назад, а вот если перешел в Активити 3, то тогда ни в первое ни во второе активити я возвращаться не должен.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
19.06.2015, 13:11     Как уничтожить все активити в стеке? #5
Самый брутальный способ - System.exit(0); ))
Hank
49 / 40 / 3
Регистрация: 28.12.2011
Сообщений: 232
19.06.2015, 16:45  [ТС]     Как уничтожить все активити в стеке? #6
В общем сделал по другому.
Активити 2 запускаю методом startActivityForResult. Когда мне нужно открыть Активити 3, я Активити 2 закрываю кодом
Java
1
2
3
4
Intent intent = new Intent();
intent.putExtra("FORM_CLOSE", true);
setResult(RESULT_OK, intent);
finish();
В методе onActivityResult() отлавливаю флаг, говорящий, что эту Активити 1 нужно закрыть и открыть Активити 3.
После всех манипуляций в стеке остается только Активити 3.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2015, 17:40     Как уничтожить все активити в стеке?
Еще ссылки по теме:
Как отследить активность активити? Android
Android Как узнать имя Активити?
Как открыть PUSH в активити? Android
Android Как сменить первый активити?
Android Как из Активити запустить сервис ?

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

Или воспользуйтесь поиском по форуму:
Vladimirys
306 / 203 / 24
Регистрация: 16.01.2010
Сообщений: 578
19.06.2015, 17:40     Как уничтожить все активити в стеке? #7
Вот такой вариант. В принципе, работаете не только для двух активностей.
StartActivity и finish
Yandex
Объявления
19.06.2015, 17:40     Как уничтожить все активити в стеке?
Ответ Создать тему
Опции темы

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