Другой альтернативой может быть показ 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();
}