2010-12-30 3 views
0

웹 서비스에서 물건을 얻고 반환 할 때 컨테이너를 채우는 작업 중간에 작은 작업자 스레드를 실행하려고했습니다.runOnUIiThread가 스레드에서 실행되지 않음

new Thread() { 

     @Override 
     public void run() { 
      Log.w("thread", "can read from thread"); 

      try {     
       MyActivity.this.runOnUiThread(new Runnable() { 
        public void run() { 
         Log.w("internal thread", "running"); 
        } 
       }); 
      } 
      catch (Exception e) { 
       // etc 
      } 
     } 
    }.start(); 

은 "내부 스레드 : 실행"로그에 인쇄하지 않을 것이다, 나는 내용을 찢어 단지 방법의 본체에 붙여 넣은 때, 그것은했다. 결론적으로 이중 중첩 스레드는 실행되지 않았습니다. 왜 그런 일이 일어 났을까요? 나는 runOnUiThread를 오용 하는가?

감사합니다.

+0

예외를 출력하려고 시도 했습니까? 'Log.e ("Test", "exception", e);'블록에서 u를 붙잡습니다. –

+0

네, 그 블록에 들어 가지 않습니다. 그것은 기괴하다. 전체 내용을 건너 뛰는 것 같습니다. – SapphireSun

+2

asynctask 사용 – Falmarri

답변

0

왜 그런가요? 나는 runOnUiThread를 오용 하는가?

예! runOnUiThread는 Main 스레드와 다른 스레드입니다. 안드로이드 처리기 (Android Handler)를 살펴 보는 것이 좋습니다.

관련 문제