Запросите разрешение пользователя на закрытие
приложение.
Вы можете сделать это следующим образом;
/**
* Exit the app if user select yes.
*/
private void doExit() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(
AppDemoActivity.this);
alertDialog.setPositiveButton("Yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
alertDialog.setNegativeButton("No", null);
alertDialog.setMessage("Do you want to exit?");
alertDialog.setTitle("AppTitle");
alertDialog.show();
}
Какое хорошее место, чтобы спросить пользователя,
хочет ли он выйти из приложения
когда он нажал кнопку "Назад"?
Поскольку вы хотите, чтобы пользователь нажимал, когда он (и) нажимал жёсткую кнопку «назад», как предлагают другие, вы можете переопределить метод onBackPressed()
и вызывать указанный выше метод оттуда;
@Override
public void onBackPressed() {
doExit();
}
Как предлагает @ Martyn , вы можете использовать onKeyDown
для достижения того же самого;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
doExit();
}
return super.onKeyDown(keyCode, event);
}
Приложение также должно спросить, является ли пользователь
пытаясь выйти из приложения с помощью кнопки
(в самом приложении), а не Back hard
ключ.
Для этого вызовите doExit()
с помощью кнопки onClick;
Button exitButton = (Button)findViewById(R.id.exitButton);
exitButton.setOnClickListener(new android.view.View.OnClickListener() {
@Override
public void onClick(View v) {
doExit();
}
});
Дополнительная информация: