我设法显示一个ProgressDialog,但经过长时间运行后无法关闭它。
有谁知道这是怎么回事。

所有方法都直接在我的Activity的onCreate()下。

这是我的代码片段。

private final Handler updateHandler = new Handler() {
        public void handleMessage(final Message msg) {
        dismissWaitDialog();

    };


    public void showWaitDialog(String sTitle, String sMessage){
        waitDialog=new ProgressDialog(this);
        waitDialog.show(this, sTitle, sMessage);
    }

    public void dismissWaitDialog(){
        waitDialog.dismiss();
    }


public void longrunner(){
    showWaitDialog("Please wait","Please wait");

    new Thread() {
        public void run() {
            do something long
            updateHandler .sendMessage(mymessageinit);
        }
    }.start();
}

最佳答案

您正在使用静态的show()方法,该方法返回丢弃的ProgressDialog实例。您关闭的对话框与显示的对话框不同。要解决,请更改:

waitDialog=new ProgressDialog(this);
waitDialog.show(this, sTitle, sMessage);




waitDialog = ProgressDialog.show(this, sTitle, sMessage);


正如其他人所提到的,AsyncTask实际上是执行此类操作的规范方法,而不是直接与Thread一起使用。

关于android - ProgressDialog未关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21598513/

10-13 04:08