![](/img/trans.png)
[英]Android: What happens if the main thread is finished before the worker thread
[英]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
,或將AsyncTask
與onPostExecute()
。 在worker運行時阻止UI線程沒有任何意義。
你不知道 阻止UI線程違反了Android中線程化的關鍵規則。 這樣做可能導致那些令人討厭的“應用程序不響應”對話框,以及其他問題。
在開發人員文檔的“ 進程和線程”頁面中:
因此,您一定不能從輔助線程中操作UI,而必須從UI線程中對用戶界面進行所有操作。 因此,Android的單線程模型只有兩個規則:
不要阻塞UI線程
不要從UI線程外部訪問Android UI工具包
您應該針對需要完成的工作探索其他解決方案。 您無需提供有關問題的詳細信息,但是ekholm的解決方案可以起作用,就像可以從worker線程簡單地在Activity中調用方法一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.