了解Android中的runOnUiThread
在Android開發中,UI執行緒負責處理使用者互動和更新使用者介面。為了確保所有 UI 操作都在 UI 執行緒上執行,通常使用 runOnUiThread 方法。
在您提供的程式碼片段中,嘗試在單獨的執行緒中更新 UI使用 runOnUiThread。但是,當前的實現不正確,導致單擊按鈕時出現無響應行為。原因如下:
runOnUiThread 的錯誤使用
runOnUiThread 方法接受 Runnable實例作為其參數。在您的程式碼中,您錯誤地透過 Thread(Runnable) 建立了一個新線程,而不是在目前活動中實作可運行的線程。這會導致創建一個沒有循環器的單獨線程,這對於處理 UI 事件至關重要。
修正的程式碼
runThread 方法如下:
private void runThread() { new Thread() { public void run() { while (i++ < 1000) { try { runOnUiThread(new Runnable() { @Override public void run() { btn.setText("#" + i); } }); Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); }在這個修正後的程式碼中,創建了一個新線程,但是在該線程
runOnUiThread被呼叫以更新 UI 執行緒上的 UI 元素。傳遞給 runOnUiThread 的 Runnable 實例包含更新按鈕文字的程式碼。
透過正確使用runOnUiThread,您可以確保所有 UI-相關操作發生在主UI執行緒上,防止UI卡頓,保證回應能力。
以上是為什麼不正確使用 Android 的 `runOnUiThread` 會導致 UI 無回應?的詳細內容。更多資訊請關注PHP中文網其他相關文章!