私はonBackPressed()にAlertDialogを持っています。ポジティブボタンをクリックすると、インテントでアクティビティを起動する必要があります。AlertDialogは常にポジティブボタンを押します。
@Override
public void onBackPressed() {
super.onBackPressed();
android.app.AlertDialog.Builder logoutDialog = new android.app.AlertDialog.Builder(MainActivity.this);
logoutDialog.setTitle("Logout");
logoutDialog.setMessage("¿Are you sure that you want to exit? Your session will end."
);
logoutDialog.setPositiveButton("LOGOUT",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(MainActivity.this, LoginActivity.class);
startActivity(i);
finish();
}
}
);
logoutDialog.setNegativeButton("CANCEL",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}
);
logoutDialog.show();
}
しかし、私は戻って押すとダイアログが秒未満表示され、それが期待される活性ではなくPositiveButtonを押さずに行きます。