在onClick中调用AlertLog无效

问题遇到的现象和发生背景

写了一个利用ProgressDialogUtil.showProgressDialog(MainActivity.this)以及ProgressDialogUtil.dismiss();可以显示及隐藏ProgressDialog的方法,希望可以在运算时跳出等待界面,但是我实际使用时程序会直接运算并显示结果,在等待时并不会跳出AlertDialog,请问是什么原因

问题相关代码,请勿粘贴截图

此为MainActivity中调用的方法的地方(trans为OnClick事件)

    public void trans(View view) {
        ProgressDialogUtil.showProgressDialog(MainActivity.this);
        
        if (!clicked) {
            ProgressDialogUtil.showProgressDialog(MainActivity.this);
            imageView.setImageBitmap(bitmap1);
            clicked = !clicked;
        } else {
            imageView.setImageBitmap(bitmap);
            clicked = !clicked;
        }

        generator(bitmap1);

        for (int j = 0; j < Gcodes.size()-1; j++){
            t+=Gcodes.get(j)+"\n";
        }

        txv1.setText(t);
        ProgressDialogUtil.dismiss();
    }

此为被调用之方法

public class ProgressDialogUtil {
    private static AlertDialog mAlertDialog;

    /**
     * 彈出耗時對話方塊
     * @param context
     */
    public static void showProgressDialog(Context context) {
        if (mAlertDialog == null) {
            mAlertDialog = new AlertDialog.Builder(context, R.style.CustomProgressDialog).create();
        }

        View loadView = LayoutInflater.from(context).inflate(R.layout.custom_progress_dialog_view, null);
        mAlertDialog.setView(loadView, 0, 0, 0, 0);
        mAlertDialog.setCanceledOnTouchOutside(false);

        TextView tvTip = loadView.findViewById(R.id.tvTip);
        tvTip.setText("載入中...");

        mAlertDialog.show();
    }

    public static void showProgressDialog(Context context, String tip) {
        if (TextUtils.isEmpty(tip)) {
            tip = "載入中...";
        }

        if (mAlertDialog == null) {
            mAlertDialog = new AlertDialog.Builder(context, R.style.CustomProgressDialog).create();
        }

        View loadView = LayoutInflater.from(context).inflate(R.layout.custom_progress_dialog_view, null);
        mAlertDialog.setView(loadView, 0, 0, 0, 0);
        mAlertDialog.setCanceledOnTouchOutside(false);

        TextView tvTip = loadView.findViewById(R.id.tvTip);
        tvTip.setText(tip);

        mAlertDialog.show();
    }

    /**
     * 隱藏耗時對話方塊
     */
    public static void dismiss() {
        if (mAlertDialog != null && mAlertDialog.isShowing()) {
            mAlertDialog.dismiss();
        }
    }
}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

在运算前跳出等待框,运算结束后隐藏

是不是运算太快,提示直接消失了,可以在dismiss前加个延时

Thread.sleep(1000)
ProgressDialogUtil.dismiss();

这个需要用handle进行