Здравствуйте!
Как закрыть приложение, в котором несколько активностей? Если переходить с одной на другую и при этом делать finish(), то все понятно.
Допустим у нас три Activity. Мы последовательно попали на третью Activity. Как при нажатии в меню Выход на третьей Activity, полностью закрыть приложение?
Закрытие приложения с несколькими Activity.
Re: Закрытие приложения с несколькими Activity.
это противоречит концепции архитектуры приложений на Androide
как-то можно, например руками "почистив" стек активностей. Я находил пример кода для такой задачи, но он у меня не сработал
как-то можно, например руками "почистив" стек активностей. Я находил пример кода для такой задачи, но он у меня не сработал
Re: Закрытие приложения с несколькими Activity.
На примере двух Activity: MainActivity и SecondActivity
Стартовое(корневое) - MainActivity. Из него вызывается SecondActivity.
В SecondActivity есть некая кнопка "выход". На ее нажатие вешаем:
Этот код вызывает MainActivity и чистит весь стек над ним. И посылаем метку закрытия
В MainActivity в onCreate сразу после конструктора суперкласса пишем
Проверка, если пришла метка закрытия, то закрываемся
Стартовое(корневое) - MainActivity. Из него вызывается SecondActivity.
В SecondActivity есть некая кнопка "выход". На ее нажатие вешаем:
Код: Выделить всё
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("finish", true);
startActivity(intent);
В MainActivity в onCreate сразу после конструктора суперкласса пишем
Код: Выделить всё
if (getIntent().getBooleanExtra("finish", false)) finish();
Re: Закрытие приложения с несколькими Activity.
хм, это в три раза короче чем в том месте, где смотрел я
сейчас заюзаю
сейчас заюзаю
Re: Закрытие приложения с несколькими Activity.
Получилось! Огромное спасибо!
-
- Сообщения: 8
- Зарегистрирован: 21 июн 2012, 16:25
Re: Закрытие приложения с несколькими Activity.
Подскажите. вот у меня таким образом:
код переходит на MainActivity
а вот ка у вас здесь написано не переходит:
почему?
Код: Выделить всё
startActivity(new Intent(getActivity(), MainActivity.class));
getActivity().finish();
а вот ка у вас здесь написано не переходит:
Код: Выделить всё
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("finish", true);
startActivity(intent);