2011-11-28 56 views
1

我有一個函數在隊列中運行消息。但是當我運行這個時,最後一個處理程序只能被執行,而不是第一個!幫幫我!處理程序沒有運行android

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); 



    } 

所有我試圖做的是:第一個文本應該在10秒後10秒「完成」

+0

什麼是變量TXT? –

+0

顯然是一個文本視圖! :d – Chandeep

回答

0
再來爲「生成唯一的ID ...」,然後「發送短信......」說着

兩者都有相同的延遲......我想第一個正在執行,並在第二個執行後幾毫秒;所以看起來第二個是唯一被執行的。

醜陋的方式:

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秒 「發送短信......」 然後再經過10秒 「完成「 – Chandeep

+0

然後,**顯然**,你這樣做的方式不對......讓我改變我的答案。 – Cristian

+0

這不起作用..但我找到了另一種方式..檢查我的答案! – Chandeep