Подтвердите закрытие приложения нажатием кнопки назад
Как сделать так, чтобы нажатие кнопки "назад" не закрывало мое приложение? Я хочу отобразить подтверждающее сообщение.
Спасибо.
4 ответа
Источник: переопределить кнопку назад, чтобы действовать как домашняя кнопка
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Display confirmation here, finish() activity.
return true;
}
return super.onKeyDown(keyCode, event);
}
Это был очень быстрый поиск, попробуйте немного заглянуть в следующий раз.
Подтверждение закрытия заявки здесь
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to close?")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do finish
ImageViewActivity.this.finish();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do nothing
return;
}
});
AlertDialog alert = builder.create();
alert.show();
}
return super.onKeyDown(keyCode, event);
}
Попробуйте это на кнопку назад нажата показывает подтверждение
@Override
public void onBackPressed() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Thank You!!!!!")
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do things
}
});
AlertDialog alert = builder.create();
alert.show();
}
Не рекомендуется выходить из приложения Android. Дизайн Android не предпочитает выходить из приложения по выбору, а управляет им в операционной системе. Вы можете вызвать приложение Home по соответствующему Намерению:
Вы можете запустить это намерение на onKeyDown()
в Android 1.x и выше или onBackPressed()
в Android 2.x и выше
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Более простой подход - захватить нажатие кнопки "Назад" и вызвать moveTaskToBack(true) следующим образом:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}