2012-09-25 1 views
0

내가 이클립스와 함께 응용 프로그램을 실행하면 오류 : "can't create handler inside thread that hos not called looper.prepare()"이 표시되고 이유를 알 수 없습니다. looper.prepare()라고하지 않는 스레드에서 핸들러를 생성 할 수 없습니까?

이 클래스의 인스턴스를 생성하는 코드는 기본 응용 프로그램이 아닌 다른 스레드에서 실행중인 경우, 위의 코드와 함께이 오류를 얻을 것이다

public void execute_web_service() { 
    progressd = ProgressDialog.show(liste_voyage.this, "", "Chargement...", true, 
      false); 

    Thread thread = new Thread(liste_voyage.this); 
    thread.start(); 

} 




public void run() { 


    get_liste_arrives(); 

    handler.sendEmptyMessage(0); 
} 



private Handler handler = new Handler() { 
    @Override 
    public void handleMessage(Message msg) { 
     progressd.dismiss(); 
     afficher_liste_arrives(); 

    } 
}; 
+0

아마도이 대답은 유용 할 것입니다 : http://stackoverflow.com/a/6213637/1686442 –

답변

1

내 코드의 일부이다 실.

+0

이 코드는 목록에 표시 할 정보가 있지만 get_liste_arrives() 함수가 아무 것도 반환하지 않으면 작동합니다 데이터베이스의 행을 클릭하면이 코드의 클래스로 연결되는 버튼을 클릭하면 응용 프로그램이 중지됩니다. –