Java 在“正”按钮中放大AlertDialog会导致最后一个对话框不会关闭
我试图打开两个警报对话框,比如权限,第一个对话框在我按下正按钮时弹出并关闭,然后第二个对话框会膨胀,但当我在第二个警报对话框上按下正按钮时,它不会丢失并一直显示Java 在“正”按钮中放大AlertDialog会导致最后一个对话框不会关闭,java,android,android-alertdialog,android-dialog,Java,Android,Android Alertdialog,Android Dialog,我试图打开两个警报对话框,比如权限,第一个对话框在我按下正按钮时弹出并关闭,然后第二个对话框会膨胀,但当我在第二个警报对话框上按下正按钮时,它不会丢失并一直显示 private void requestXiaomiBootPermission(){ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("Automatic boot
private void requestXiaomiBootPermission(){
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Automatic boot");
builder.setMessage("we need this permission to work");
builder.setCancelable(false);
builder.setPositiveButton("Allow", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
addAutoStartup();
requestXiaomiBackgroundPermission();
dialog.dismiss();
}
}).show();
builder.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
builder.setNeutralButton("do not show", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
builder.show();
}
private void requestXiaomiBackgroundPermission(){
AlertDialog.Builder builder2 = new AlertDialog.Builder(MainActivity.this);
builder2.setTitle("Popup window");
builder2.setMessage("we need this permission to work");
builder2.setCancelable(false);
builder2.setPositiveButton("Allow", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
addPermissionsOnBackgroud();
dialog.dismiss(); // --> Here it does not dismiss when this dialog inflates
}
}).show();
builder2.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).show();
builder2.setNeutralButton("do not show", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
builder2.show();
}
电路是这样的
我打开应用程序,第一个对话框弹出(
requestXiaomiBootPermission()
),然后当我按下肯定按钮allow时,它会打开第二个对话框(requestXiaomiBackgroundPermission()
),但当我在这个对话框上按下allow时,dialog.discover()
不会关闭我的对话框并保留任何解决方案?不要在每次调用setXXXXXButton()
后调用show()
。只要在最后调用它一次。您正在创建4个启动权限对话框和4个后台权限对话框,并且它们都堆叠在一起。您正在打开这两个对话框4次。删除所有三个按钮后的show()方法。只需将show()方法保留在最后
private void requestXiaomiBootPermission(){
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Automatic boot");
builder.setMessage("we need this permission to work");
builder.setCancelable(false);
builder.setPositiveButton("Allow", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i) {
dialog.dismiss();
}
});
builder.setNegativeButton("Deny", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.setNeutralButton("do not show", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
requestmibackgroundpermission()
执行了多少次?只在该正按钮中执行一次