[英]How to properly pause the main thread with a loading screen without freezing UI until condition is met,
您好stackoverflow,並提前謝謝。
我正在嘗試加載加載菜單,直到線程將數組填充到至少5個大小為止,但UI凍結。
我有一個“新游戲”按鈕,當用戶單擊它時,創建了一個線程,該線程負責填充數組,該線程在后台運行良好。
同時,在主線程中,我試圖在用戶單擊“新游戲”按鈕后立即顯示帶有“正在加載”的漂亮動畫的加載菜單。 我希望此菜單顯示到(Array.size <5),然后才進行處理
gameLayout.setVisibility(view.VISIBLE);
我知道這是最可怕的解決方案,但是我不得不這樣做以防止崩潰,直到我弄清楚如何正確執行它為止。 加載屏幕開始“可見”,並由於UI凍結而立即停止顯示。
loadingLayout.setVisibility(view.VISIBLE)
while(Array.size < 5)
{
}
loadingLayout.setVisibility(view.INVISIBLE)
gameLayout.setVisibility(view.VISIBLE)
最好的方法是什么?
如何正確暫停主線程。
你不 。 主線程(也稱為UI線程)永遠不應被阻塞。
您說您已經做好了背景工作。 條件應作為工作的一部分在后台線程上計算,一旦滿足,任何結果都將傳遞回UI線程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.