2012-07-11 2 views
0
나는 꼬리표를 인쇄하는 새로운 스레드 객체 (인쇄 소송 사건을) 통과 싶습니다

에 익명으로 생성 된 새 스레드에 개체를 전달할 수 있습니다. 내 코드 :어떻게 버튼 리스너

private final Button.OnClickListener cmdPrintOnClickListener = new Button.OnClickListener() { 

    public void onClick(View v) { 
     new Thread(new Runnable() { 
      public void run() { 
       enableTestButton(false); 
       Looper.prepare(); 
       doConnectionTest(); 
       Looper.loop(); 
       Looper.myLooper().quit(); 
      } 
     }).start(); 

     } 
}; 

개체를 전달하는 방법은 무엇입니까? 또한 - 난 그냥 새 스레드를 시작 그래서

덕분에 아래에 내 코드와 관련하여이 방법을 (예를 들어 getDocketObject()) 넣을 수

안톤 전에, UI 스레드에서 개체를 생성해야

당신은 당신의 자신의 Runnable 클래스 구현 만들 수

답변

3

:

private class RunnableInstance implements Runnable { 

    protected Docket docket; 

    public void run() { 
     //do your stuff with the docket 
    } 

    public void setDocket(Docket docket) { 
     this.docket = docket; 
    } 

} 

을 그리고 스레드

을 만드는 데 사용

익명 클래스에 충실해야 할 경우 당신이 할 수 있습니다 :

 public void onClick(View v) { 
     final Docket docket = docketInstance; 
     Runnable target = new Runnable(){ 
      public void run() { 
       // do your stuff with the docket 
       System.out.println(docket); 
      } 
     }; 
     new Thread(target).start(); 

    } 

그러나 당신은 당신이 최종 변수에 인스턴스를 할당 확인했다.

+0

좋은 답변, 고마워요. – WaterBoy