Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上强制使ProgressDialog无效?_Android_User Interface_Progressdialog - Fatal编程技术网

如何在Android上强制使ProgressDialog无效?

如何在Android上强制使ProgressDialog无效?,android,user-interface,progressdialog,Android,User Interface,Progressdialog,我正在后台线程中执行一些任务,并使用ProgressDialog(消息和进度)显示进度。我确信它工作正常,并且更新是在UI线程中完成的 当更新非常频繁时,每秒只会使对话框视图无效几次(不是在每次消息/进度设置之后)。如何在每次更改消息或进度时强制更新它?我找不到任何getView()或invalidate()方法。请尝试以下方法: 您可以根据您的要求进行更改 @Override protected Void doInBackground(Void... p

我正在后台线程中执行一些任务,并使用
ProgressDialog
(消息和进度)显示进度。我确信它工作正常,并且更新是在UI线程中完成的

当更新非常频繁时,每秒只会使对话框视图无效几次(不是在每次消息/进度设置之后)。如何在每次更改消息或进度时强制更新它?我找不到任何
getView()
invalidate()
方法。

请尝试以下方法:

您可以根据您的要求进行更改

            @Override
        protected Void doInBackground(Void... params)
        {
            try {
                publishProgress("Connecting");
                Thread.sleep(2000);
                publishProgress("Downloading");
                Thread.sleep(5000);
                publishProgress("Done");
            } catch (InterruptedException e) 
            {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onProgressUpdate(String... values) 
        {
            mProgressHUD.setMessage(values[0]);
            super.onProgressUpdate(values);
        }

ProgressDialog
不接受数值吗?为什么不?这只是一个例子。@4ntoine:你想这样还是有其他问题?>>我确信它工作正常,并且更新是在UI线程中完成的。这意味着我的代码已经完成了您编写的内容。这是另一个问题。更新的消息(文本和进度)在设置后不会立即显示,因此您必须发布更多与问题相关的代码。