2012-07-11 50 views
1

停止計時器後我該如何烤麪包?停止計時器吐司後,怎麼樣?

onCreate { 

//other code 

myTimer = new Timer(); 
     myTimer.schedule(new TimerTask() {   
      @Override 
      public void run() { 
       TimerMethod(); 
       } 

     }, 0, 1000); 


     Toast.makeText(getApplicationContext(), "AS", 455).show(); 

    } 

private void TimerMethod() 
    { 
    this.runOnUiThread(Timer_Tick); 

    } 


    private Runnable Timer_Tick = new Runnable() { 
     public void run() { 

       rub_stat++; 
       if (rub_stat == 15){myTimer.cancel(); }      } 
    }; 

因此,rub_stat達到15後,我想要取消定時器,並讓吐司出現。提前致謝!

+0

你爲什麼不能做你喜歡做的第一吐司?在取消呼叫之後... – javajavajava 2012-07-11 19:20:43

+0

顯示myTimer.cancel()後面的敬酒。 – Addison 2012-07-11 19:22:18

+0

它看起來沒有在計時器之後立即可以附加代碼 – 2012-07-11 19:24:52

回答

2

你可能想使一個單獨的線程,而不是在UI線程,所以基本上有一個線程調用替換

this.runOnUiThread(Timer_Tick); 

,然後你就可以加入該線程,並有15秒線程暫停,並在加入後立即顯示Toast

Thread thread = new Thread() 
{ 
    @Override 
    public void run() { 
     try { 
      sleep (1000 * 15); 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } 
    } 
}; 

thread.start(); 
thread.join(); 
this.runOnUiThread(showToast; 

showToast也只是展現敬酒的功能。

我還沒有測試這個代碼了,但它應該接近你的需要。

更多關於join你可以看看這個博客文章:

http://cnapagoda.blogspot.ca/2010/01/thread-join-method.html

+0

?我是初學者,謝謝! – 2012-07-11 19:33:22