Как "закрыть" приложение из любого Activity
Добавлено: 05 апр 2012, 11:15
На примере двух Activity: MainActivity и SecondActivity
Стартовое(корневое) - MainActivity. Из него вызывается SecondActivity.
Первый способ:
В SecondActivity есть некая кнопка "выход". На ее нажатие вешаем:
Этот код вызывает MainActivity и чистит весь стек над ним. И посылаем свою метку закрытия
В MainActivity в onCreate сразу после конструктора суперкласса пишем
Проверка, если пришла метка закрытия, то закрываемся
Второй способ:
В манифесте для MainActivity прописываем свойство:
Это означает, что если свернуть приложение, а потом снова запустить, то весь стек выше MainActivity очистится и запустится MainActivity.
В SecondActivity есть некая кнопка "выход". На ее нажатие вешаем:
Код просто убирает приложение в фон. Аналогично нажатию кнопки Home.
У второго способа есть недостаток: если приложение запускать через удержание кнопки Home, то метод не работает. А если через ярлык, то все ок.
Стартовое(корневое) - 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();
Второй способ:
В манифесте для MainActivity прописываем свойство:
Код: Выделить всё
android:clearTaskOnLaunch="true"
В SecondActivity есть некая кнопка "выход". На ее нажатие вешаем:
Код: Выделить всё
moveTaskToBack(true);
У второго способа есть недостаток: если приложение запускать через удержание кнопки Home, то метод не работает. А если через ярлык, то все ок.