2011-12-02 75 views
2

注意:我知道有很多问题与此有关,但我仍然不信服,所以问。不能创建处理程序内部线程,还没有调用looper.prepare

我正在越界创建处理程序内部线程,当我尝试显示对话框时没有调用looper.prepare。

这里是我的代码...

//此方法是基于某些条件这是inturn呼吁通过不同的方法称为点击一个按钮

private void download() { 
    thread = new Thread() { 
    public void run() { 
    /**** Downloads each tour's Tour.plist file ****/ 
      try { 
       // do many heavy operations here, like download, 
       //calling web webvice and starting another activity 

       This comes at the end 

       Intent toAudio = new Intent(TourDescription.this,Audio.class); 
       startActivity(toAudio); 
     } catch (Exception e) { 
     } 

     } 
    }; 
    thread.start(); 
} 

现在,在这之前actity被调用我试图展示一个对话框。我正在尝试在调用意图之前将其放置。

任何机构可以请告诉我如何做到这一点,因为我不理解怎么解决这个

回答

5

就可以不显示从一个子线程的对话框。 只能在UI线程/主线程内显示对话框。

试试这个从子线程

runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO show dialog.... 

     } 
    }); 
+0

大里面,这帮助了我。我也理解这个概念...... :) – tejas

+0

很高兴我能帮助你...考虑将答案标记为已解决,以便其他人可以轻松找到答案。 – Umesh

+0

但我在这里有一个小问题,几乎在开始活动结束时出现对话框,我希望对话框比现在早出现。你有这个答案吗? – tejas

相关问题