簡體   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