安卓dialog的loading无法自动关闭

使用安卓的dialog的loading弹窗时,.show()可以正常弹出,但是用.dismiss()不能关闭,只能手动点空白区域关闭。

我用的是第三方的loading库,名字叫 ZLoadingDialog

比如点击一个按钮发送验证码,点击按钮就调用.show(),此时可以正常弹出,然后在发送验证码之后点调用.dismiss()却不能自动关闭。也许我描述的不够明白,贴代码吧。

效果图👇

img

代码👇

  //发送邮箱验证码逻辑
        ed4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                
                //弹出loading , 让用户不会以为程序卡死了 , 缓解尴尬
                DialogLoad dialogLoad = new DialogLoad(Register.this);
                dialogLoad.dialogLoading();
                
                String Rurl = myurl;
                String Register_useremail = "useremail="+ed3.getText().toString();
                String appid = "&appid=10000";
                boolean bl = Register_useremail.contains("@");
                boolean bl1 = Register_useremail.contains(".");
                if (TextUtils.isEmpty(ed3.getText())) {
                    Toasty.warning(Register.this, "邮箱不能为空", Toasty.LENGTH_SHORT).show();
                } else if (!bl || !bl1) {
                    Toasty.warning(Register.this, "邮箱格式不正确\n注意中英文符号的输入", Toasty.LENGTH_LONG).show();
                } else {

                    ed4.setEnabled(false);//发送之后设置发送按钮为不可点击 ,60秒之后再恢复
                    
                    /*
                      * 在线程里调用网络请求的方法,来发送验证码,并且把返回值发送给主线程
                    */
                    new Thread(() -> {
                        String value = ThreadHttp.HttpDo(Rurl, "", "", Register_useremail, appid, "");
                        Message message = new Message();
                        message.what = 2;
                        message.obj = value;
                        mhandler.sendMessage(message);
                    }).start();
                    
                    dialogLoad.dismiss();// 发送给验证码的message发送到mhandler之后 就关闭loading
            }
            }
        });

如果还需要看看dismiss方法 那我也贴出来吧

 public void dismiss() {
        if (mDismissOverride != null) {
            mDismissOverride.run();
            return;
        }

run日志我也看不明白,也没有报错,但是dismiss明明就没生效啊!我也尝试过用.hint来隐藏loading弹窗,一样是没用,也尝试过把dismiss放在不同的地方,比如放在线程里面,也是没用。请求解答一下,感谢感谢!

mDismissOverride.run();这一句是怎么引用来了?
mDismissOverride这个对象是Dialog吗?