有人能告诉我为什么在异步线程完成之前,以下对话框才会显示。我想不出这个办法。这在主UI线程中运行。不确定为什么新线程会影响主UI线程的流。
dialog = new ProgressDialog(this);
dialog.show();
new Thread(new Runnable() {
public void run() {
while(imageLoader.isProcessing()) {}
doSomething();
}
}).run();
发布于 2011-04-27 04:59:48
您需要调用匿名线程的start()
方法,而不是run()
方法。
来自文档
public void ():使该线程开始执行;Java虚拟机调用该线程的run方法。
发布于 2011-04-27 05:06:44
发布于 2011-04-27 05:05:30
不要期望线程遵循代码流。我建议使用AsyncTask,为了显示对话框,可以在onPreExecute()中显示对话框,并在onPostExecute()中删除它
或者您可能喜欢尝试runOnUiThread()
https://stackoverflow.com/questions/5799532
复制相似问题