繁体   English   中英

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

[英]Android:: Blocking main thread for worker thread to finish before executing other tasks in main thread

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

提前致谢!

工作人员完成后,需要在UI线程上执行操作吗? 在工作程序末尾使用runOnUiThread ,或将AsyncTaskonPostExecute() 在worker运行时阻止UI线程没有任何意义。

你不知道 阻止UI线程违反了Android中线程化的关键规则。 这样做可能导致那些令人讨厌的“应用程序不响应”对话框,以及其他问题。

在开发人员文档的“ 进程和线程”页面中:

因此,您一定不能从辅助线程中操作UI,而必须从UI线程中对用户界面进行所有操作。 因此,Android的单线程模型只有两个规则:

不要阻塞UI线程

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

您应该针对需要完成的工作探索其他解决方案。 您无需提供有关问题的详细信息,但是ekholm的解决方案可以起作用,就像可以从worker线程简单地在Activity中调用方法一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM