2011-11-28 3 views
1

메시지에 대기열을 실행하는 기능이 있습니다. 그러나 이것을 실행할 때 마지막 핸들러는 처음 실행되는 것이 아니라 실행됩니다. 도움!처리기가 실행되지 않습니다.

void functionShow() 
    { 

     button.setVisibility(View.INVISIBLE); 
     txt.setText("Generating Unique ID ... Please Wait "); 

     Handler handler = new Handler(); 
     handler.postDelayed(new Runnable() { 
      public void run() { 
       txt.setText("Sending SMS ... Please Wait");  
      } 
     }, 10000); 


     Handler handler1 = new Handler(); 
     handler1.postDelayed(new Runnable() { 
      public void run() 
      { 
       txt.setText("Done"); 
      } 
     }, 10000); 



    } 

내가 할 노력하고 모든이다 : 첫 번째 텍스트는 일이 아니다 "생성 고유 ID ..."그리고 10 초 후 "SMS를 보내는 중 ..."그런 다음 다시

+0

변수 TXT는 무엇입니까? –

+0

분명히 텍스트보기! : D – Chandeep

답변

0
"완료"10 초 후

두 가지 모두 같은 지연이 있습니다. 첫 번째 것은 실행되고 두 번째 밀리 초 후에 두 번째가 실행됩니다. 두 번째 것만이 실행되고있는 것처럼 보입니다.

못생긴 방법 :

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      txt.setText("Sending SMS ... Please Wait"); 
      postDelayed(new Runnable() { 
       public void run(){ 
        txt.setText("Done"); 
       } 
      }, 10000); 
     } 
    }, 10000); 

멋진 방법 :

private static final int SENDING = 1; 
private static final int DONE = 2; 
Handler handler = new Handler(){ 
    public void handleMessage(Message msg){ 
     switch(msg.what){ 
      case SENDING: 
       txt.setText("Sending SMS"); 
       sendEmptyMessageDelayed(DONE, 10000); 
       break; 
      case DONE: 
       txt.setText("Done"); 
       break; 
     } 
    } 
}; 
handler.sendEmptyMessageDelayed(SENDING, 10000); 
+0

을 내가 할 노력하고 모든입니다 먼저 텍스트로 와야한다 "생성 고유 ID ..." 그런 후 10 초 "SMS 보내기 ..." 그런 다음 다시 후 10 초 " 완료 " – Chandeep

+0

다음, ** 분명히 **, 당신은 틀린 방식으로하고 있습니다 ... 내 대답을 바꾸게하십시오. – Cristian

+0

이것은 작동하지 않습니다 ..하지만 다른 방법을 발견 .. 내 대답을 확인하십시오! – Chandeep

관련 문제