重新启动应用程序而不更改

relaunch application without changing

我从代码

中找到了一些按下主页按钮的代码
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

还有这个:

  moveTaskToBack(true);

我有一个 activity 在 单任务中
还有一个带有按钮的 alertDialog 然后你点击其中一个代码 运行 的按钮然后回到主页
因此,当您再次访问应用程序时,警报会在
之前解除 我想在不关闭 alertDialog 的情况下重新启动应用程序 我能做什么?
谢谢

在使用 Builder 创建 AlertDialog 时,您可以设置 setCancelable(false);.

AlertDialog 默认按钮将关闭对话框。 您应该使用自定义视图创建自定义对话框

public class CustomDialog extends AlertDialog(){
    TextView mTitleView,mDescriptionView;
    Button mYesButton,mNoButton,mCancelButton;
    boolean isYesButtonVisible = true;
    boolean isNoButtonVisible = true;
    boolean isCancelButtonVisible = true;

    public CustomDialog(Context context){
        super(context);
    }

    public void setYesButtonVisible(boolean isVisible){
        isYesButtonVisible = isVisible
    }

    public void setNoButtonVisible(boolean isVisible){
        isNoButtonVisible = isVisible
    }

    public void setCancelButtonVisible(boolean isVisible){
        isCancelButtonVisible = isVisible
    }

    @override
    public void show(){
        super.show();
        setContentView(R.layout.dialog_custom);
        mTitleView = findViewById(R.id.text_title);
        mDescriptionView = findViewById(R.id.text_description);
        mYesButton = findViewById(R.id.btn_yes);
        mNoButton = findViewById(R.id.btn_no);
        mCancelButton = findViewById(R.id.btn_cancel);
        isYesButtonVisible ? mYesButton.setVisibility(View.VISIBLE) : mYesButton.setVisibility(View.GONE);
        isNoButtonVisible ? mNoButton.setVisibility(View.VISIBLE) : mNoButton.setVisibility(View.GONE);
        isCancelButtonVisible ? mCancelButton.setVisibility(View.VISIBLE) : mCancleButton.setVisibility(View.GONE);
     }
    //must be called after dialog is showing else you will get NullPointerException
    public void setOnYesClickListener(View.OnClickListener listener){
        mYesButton.setonClickListener(listener);
    }
    public void setOnNoClickListener(View.OnClickListener listener){
        mNoButton.setonClickListener(listener);
    }
    public void setOnCancelClickListener(View.OnClickListener listener){
        mCancelButton.setonClickListener(listener);
    }
}

和布局dialog_custom也可以自己设计,但这是我的自定义对话框的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:textColor="@color/black"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:textSize="16sp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/btn_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/yes"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/btn_no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/no"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />

        <TextView
            android:id="@id/btn_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:paddingBottom="8dp"
            android:paddingLeft="16dp"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:text="@string/cancel"
            android:textColor="@color/green_click"
            android:textSize="18sp"
            android:textStyle="bold" />
    </LinearLayout>