2011-03-02 2 views
0
new Thread() { 
    public void run() { 
     try { 
      Progress.setMessage("Scanning Apps ..."); 
      int CurrentNumber = 0; 
      while (CurrentNumber <= 99) { 
      Progress.setProgress(CurrentNumber); 
      Progress.setMessage(CurrentNumber + ""); 
      sleep(100); 
      CurrentNumber ++; 
     } catch (Exception e) { 
     } 
    } 
}.start(); 

그래서 ..이 코드 :(여러 SetMessage() 업데이트 (ProgressBar를)

을 작동하지?이 완벽하게 작동한다 Progress.setMessage(CurrentNumber + "");없이

...

답변

0

I 프로그레시브가 ProgressDialog의 인스턴스라고 가정합니다 .UI (메인) 스레드에서만 UI를 업데이트 할 수 있습니다. 개발자의 스레딩 및 UI에 대한 내용을 읽어보십시오

+0

것은 나는 단지 메시지 하나를 변경하면 ... 나를 위해 모든 권리 노력하지만 루프를 수행 할 때 루프는 항상 – Karl

+0

는 ... 그 일의 중간에 당신이 할 수있는 정지 UI 스레드에서만 UI를 수정하면 수행하는 방식대로 수행해서는 안됩니다. 게시 한 링크의 기사를 읽으십시오. –

1

진행률 업데이트를 처리하는 AsyncTask을보고 UI 스레드에서 진행 메시지를 설정할 수있는 기회를 제공합니다.

2

쓰기 처리기 예 :

private Handler handler = new Handler() { 
     @Override 
     public void handleMessage(Message msg) { 
      //set message here 
     } 
     }; 
+0

자세한 내용/설명을 추가 할 수 있습니까? – feeela

+0

위도 링크를 참조하십시오. http://crodrigues.com/updating-the-ui-from-a-background-thread-on-android/ – pawarlg

관련 문제