Когда пользователь желает выйти из всех открытых действий , он должен нажать кнопку, которая загружает первое действие, которое запускается при запуске приложения, очистить все остальные действия, а затем завершить последнее оставшееся действие. Запустите следующий код, когда пользователь нажимает кнопку выхода. В моем случае LoginActivity
это первое действие в моей программе для запуска.
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("EXIT", true);
startActivity(intent);
Приведенный выше код очищает все действия, кроме LoginActivity
. Затем поместите следующий код в LoginActivity
's' onCreate(...)
, чтобы прослушивать, когда LoginActivity
воссоздается и передается сигнал 'EXIT':
if (getIntent().getBooleanExtra("EXIT", false)) {
finish();
}
Почему создание кнопки выхода в Android так сложно?
Android изо всех сил пытается отговорить вас от наличия кнопки «выход» в вашем приложении, потому что они хотят, чтобы пользователь никогда не заботился о том, работают ли программы, которые они используют, в фоновом режиме или нет.
Разработчики ОС Android хотят, чтобы ваша программа выдерживала неожиданное отключение и отключение телефона, а когда пользователь перезапускает программу, он начинает с того места, на котором остановился. Таким образом, пользователь может получить телефонный звонок, пока он использует ваше приложение, и открыть карты, которые требуют освобождения вашего приложения для получения дополнительных ресурсов.
Когда пользователь возобновляет работу вашего приложения, он начинает работу с того места, где остановился, без перерыва. Эта кнопка выхода узурпирует власть менеджера активности, потенциально вызывая проблемы с автоматически управляемым жизненным циклом программы для Android.