Программное закрытие приложения Android

384
20 мая 2017, 17:40

Код выставлять не буду, ибо толку от этого ноль в моем случае. Все очень просто. Есть у меня активность авторизации(условно пусть activity1) пользователей с которой стартует приложение. Если пользователь уже авторизован его перекидывает сразу к основной активити приложения(activity3), если нет, то на (activity1) пользователь нажимает регистрация, после чего попадает на activity2 там проходит регистрацию а после попадает на activity3. Проблема в том что по нажатию кнопки back из activity3 я попадаю на activity2 тоесть там где регался(бред получается). Мне нужно сделать так чтобы по нажатию кнопки back из activity3 приложение полностью завершалось.

Answer 1

При открытии activity3 используй флаги:

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);

Они очистят бэк стек и твоя activity3 будет единственная в стеке. Таким образом при нажатии кнопки Back приложение закроется.

Отличие от android:noHistory="true" в том, что если пользователь нажмёт Back при регистрации на activity2, то он перейдёт обратно на авторизацию activity1, как и ожидает. А не просто закроется приложение. Это более логичное поведение навигации.

Answer 2

Есть несколько вариантов как это сделать. Первый не сохранять историю переходов. В этом случае вам нужно в манифесте у activity1 и activity2 добавить:

android:noHistory="true"

Второй способ просто переопределить событие onBackPressed и в нем "убить" процесс вашего приложения. Но будьте осторожны с этим. Перед тем как убивать процесс убедитесь что все данные сохранены.

public void onBackPressed() { 
    Process.killProcess(Process.myPid())
}

Лично я в своём приложении использую первый способ.

READ ALSO
Как проходит оплата на upWork?

Как проходит оплата на upWork?

Добрый деньВчера получил первый заказ на UpWork

588
Как получить token для уведомлений?

Как получить token для уведомлений?

Как получить токен в android приложении программно для получения уведомлений?

280
Почему const и goto не используются в java?

Почему const и goto не используются в java?

Давайте поговорим о двух зарезервированных, но неиспользуемых ключевых словах языка Java — const и gotoПочему они не используются? Как я понял...

348
Векторные иконки в версиях ниже 5-ой

Векторные иконки в версиях ниже 5-ой

Использую в своём приложении векторные кнопки(social) но они используются от 5-ой версии и выше, и вот незадача, моё приложение использует устройства...

260