2014-05-14 2 views
0

내가 MainActivity가 활동을안드로이드 상호 작용 스레드 및 활동

확장이 내가 MainActivity 에서 스레드를 시작 ThreadHandler라는 스레드가없이 스레드에게

를 확장

완전히 잘 작동 및이 방법을 실행라는 방법이 MainActivity에서

@Override 
public void run() { 
    Log.i("ThreadHandelr","running"); 
    while(true){ 
     try { 
      String s = streamIn.readUTF(); 
      activity.showMessage(s); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

public synchronized void showMessage(String s){ 
    Toast.makeText(MainActivity.this,s,0).show(); 
} 

내가 showMessage 방법 를 사용하는 MainActivity 통과 ThreadHandler에 대한 constructor에를했지만 "threadid = 12 : 잡히지 않은 예외로 종료하는 스레드" "FATAL EXCE PTION : THREAD-124

답변

0

당신은 상호 작용하는 Activity.runOnUiThread()를 사용해야 실행 ""나쁜 문법

죄송합니다 영어가 모국어가 고작

결론 하지 않기 때문에 당신은 어떻게 스레드에서 MainActivity 방법을 사용합니까 " 다른 스레드의 UI 구성 요소와 함께. 즉, 코드를 다음과 같이 변경하는 것입니다.

final String s = streamIn.readUTF(); 
activity.runOnUiThread(new Runnable() { 

    public void run() { 
     activity.showMessage(s); 
    } 

});