Android ::在主线程中执行其他任务之前阻止工作线程完成的主线程

时间:2012-08-15 19:41:20

标签: android

我正在UI线程中执行一些任务,并创建了一个工作线程,为我做网络工作。但是,一旦工作线程完成,我需要执行一些重要的事情。有人可以建议我一个解决方案吗?

{
    Main thread...
    worker thread created..and executed..
    //I need to wait here for the worker thread to finish//
    some useful task to be done
}

提前致谢!

2 个答案:

答案 0 :(得分:3)

你需要在工作完成后在UI线程上做一些事情吗?在工作人员结束时使用runOnUiThread或使用AsyncTask onPostExecute()。在工作人员运行时阻止UI线程没有任何意义。

答案 1 :(得分:0)

你没有。阻止UI线程违反了Android中线程的关键规则。 这样做会导致那些恼人的“应用程序无响应”对话框以及其他问题。

从开发者文档的Processes and Threads页面:

  

因此,您不能从工作线程操纵UI - 您必须从UI线程对您的用户界面进行所有操作。因此,Android的单线程模型只有两个规则:

     

不要阻止UI线程

     

不要从UI线程外部访问Android UI工具包

您应该探索需要完成的其他解决方案。您无需详细说明您的问题,但ekholm的解决方案可以正常工作,就像从工作线程调用Activity中的方法一样。