Другой альтернативой может быть показ Toast
/ Snackbar
при первом нажатии назад с просьбой снова вернуться к выходу , что намного менее навязчиво, чем показ AlertDialog
для подтверждения если пользователь хочет выйти из приложения.
Вы можете использовать DoubleBackPress Android Library
для достижения этого с помощью нескольких строк кода. Пример GIF, демонстрирующий похожее поведение.
Для начала добавьте зависимость в ваше приложение:
dependencies {
implementation 'com.github.kaushikthedeveloper:double-back-press:0.0.1'
}
Далее, в вашей Деятельности, реализуйте требуемое поведение.
// set the Toast to be shown on FirstBackPress (ToastDisplay - builtin template)
// can be replaced by custom action (new FirstBackPressAction{...})
FirstBackPressAction firstBackPressAction = new ToastDisplay().standard(this);
// set the Action on DoubleBackPress
DoubleBackPressAction doubleBackPressAction = new DoubleBackPressAction() {
@Override
public void actionCall() {
// TODO : Exit the application
finish();
System.exit(0);
}
};
// setup DoubleBackPress behaviour : close the current Activity
DoubleBackPress doubleBackPress = new DoubleBackPress()
.withDoublePressDuration(3000) // msec - wait for second back press
.withFirstBackPressAction(firstBackPressAction)
.withDoubleBackPressAction(doubleBackPressAction);
Наконец, установите это как поведение при нажатии на спину.
@Override
public void onBackPressed() {
doubleBackPress.onBackPressed();
}