確保顯示操作運行在UI線程 - runOnUiThread

一、概述

    與顯示相關的操作要放到UI線程裏操作。除了用Handler發送Task到UI線程顯示外,還有另外一種方法runOnUiThread方式確保顯示操作運行在UI線程。

二、實例

【代碼要點】

Handler方式

  1. new Thread(new Runnable(){  
  2.                     @Override  
  3.                     public void  run() {  
  4.                         // TODO Auto-generated method stub  
  5.                         while (progressStatus < 10) {  
  6.                             //比如doWork在做網絡下載任務的話,返回progressStatus值來更新progressBar的進度。                              
  7.                             progressStatus = doWork();  
  8.                              // Update the progress bar  
  9.                              mHandler.post(new Runnable() {  
  10.                                  public void run() {  
  11.                                      mProgress.setProgress(progressStatus);  
  12.                                  }  
  13.                              });  
  14.                          }  
  15.                     }  
  16.                 }).start();  

runOnUiThread方式

  1. new Thread(new Runnable(){  
  2.                     @Override  
  3.                     public void  run() {  
  4.                         // TODO Auto-generated method stub  
  5.                         while (progressStatus < 10) {  
  6.                             //比如doWork在做網絡下載任務的話,返回progressStatus值來更新progressBar的進度。                              
  7.                             progressStatus = doWork();  
  8.                              // Update the progress bar  
  9.                             ProgressBarTest.this.runOnUiThread(new Runnable(){  
  10.                                 @Override  
  11.                                 public void run() {  
  12.                                     // TODO Auto-generated method stub  
  13.                                     mProgress.setProgress(progressStatus);  
  14.                                 }  
  15.                             });  
  16.                          }  
  17.                     }  
  18.                 }).start();  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章