0

我正在 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
}

提前致谢!

4

2 回答 2

3

工作人员完成后,您需要在 UI 线程上执行操作吗?runOnUiThread在您的工作人员结束时使用或AsyncTaskonPostExecute(). 在 worker 运行时阻塞 UI 线程没有任何意义。

于 2012-08-15T19:45:54.700 回答
0

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

从开发人员文档的进程和线程页面:

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

不要阻塞 UI 线程

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

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

于 2012-08-15T19:58:59.587 回答