2016-09-16 43 views
0

例如,我在那裏當用戶按下某個鍵必須顯示倒帶指標的情況。 我發現按鍵在安其監聽,檢查的鍵碼,如果它倒帶鍵我調用該函數showRewind()這是好主意,用處理器的UI變化的Android

public static void showRewind(){ 
     (new Handler(Looper.getMainLooper())).post(new Runnable() { 
      @Override 
      public void run() { 
       rewindText.setVisibility(View.VISIBLE); 
      } 
     }); 
    } 

通知的處理程序和Looper.getMainLooper()我在這裏使用的,如果我不這樣做, UI不會立即更新。這是我能找到的唯一解決方案,可以在按鍵上即時更新,並且完美運行,但不知何故,我感覺我沒有做正確的事情。

我是相當新的Android和我不得不很快學會它,這樣我就可以不深進入文檔和使用一般實用的解決方案,從計算器。

現在我的問題:是我在這裏做什麼(使用處理器與主尺蠖更新UI)通常是一個好主意,或者是有一個更好的解決方案,以在按鍵即時更新UI?

+0

你嘗試'runOnUiThread'? https://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable) –

+0

好它的作品一樣好,我想這是更好地使用? –

+0

只是可能更簡單 –

回答

0

如果要更新主要還是UI線程(把它在多線程環境中的關鍵部分),它應以一致和同步的方式來完成。爲了做到這一點,主線程或UI線程有相應的消息隊列機制和相關的處理程序。循環者將遍歷消息隊列以執行它。因此,更新主線程或UI線程的最好方法是通過處理程序,並且將成爲基本機制。即使將有實用程序類爲您更新主線程或UI線程,它們也將依賴於此處理程序機制。 從我的角度來看,這是更新主線程或UI線程的最佳方式。

相關問題