2010-04-22 6 views
6

Quando si scrive:Android CountDownTimer

CountDownTimer timer = new CountDownTimer(1000, 100) 
{ 
     @Override 
     public void onTick(long l) 
     { 

     } 

     @Override 
     public void onFinish() 
     { 

     }; 
}.start(); 

stiamo in realtà iniziando un nuovo thread che gestisce le zecche? Se no, cosa sta succedendo davvero?

risposta

11

CountDownTimer 's implementation utilizza Handler e sendMessageDelayed(), quindi non è necessario alcun thread in background. Ciò significa che il timer non si aggiorna se stai legando il thread dell'applicazione principale altrove nel tuo codice.

1

definizione dal più pubblicazioni, provati e testati:

"un altro timer è fornito con il classe incorporata CountDownTimer .Questo incapsula la creazione di un thread in background e il gestore in coda in una chiamata di classe conveniente. .. "

+1

Non è stato creato alcun thread in background, guarda [implementazione] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3. 4_r1/android/os/CountDownTimer.java). –