2011-04-27 47 views
3

谁能告诉我,为什么下面的对话框不显示,直到异步线程完成。我无法弄清楚这一点。这是在主UI线程中运行的。不知道为什么一个新的线程会影响到主UI线程非同步线程停止主UI线程

   dialog = new ProgressDialog(this); 

       dialog.show(); 

       new Thread(new Runnable() { 
        public void run() { 
         while(imageLoader.isProcessing()) {} 
         doSomething(); 
        } 
       }).run(); 

回答

9

你需要调用start()方法匿名线程的,而不是run()方法的流程。

docs

公共无效的start():使该线程开始执行; Java虚拟机会调用此线程的运行方法。

+0

我应该知道这个..谢谢。 – akupun 2011-04-27 12:05:36

0

不要指望线程按照你的代码流。我建议使用的AsyncTask和显示对话框中可以显示onPreExecute(对话)和onPostExecute(删除)

或可能是你想尝试runOnUiThread()