Exécuter en boucle à chaque seconde java

int delay = 1000; //delay for 1 sec. 
int period = 10000; //repeat every 10 sec. 
Timer timer = new Timer(); 
timer.scheduleAtFixedRate(new TimerTask() 
    { 
        public void run() 
        { 
            displayData();  //display the data
        } 
    }, delay, period);  

Et autres:

while(needToDisplayData)
{
    displayData(); //display the data
    Thread.sleep(10000); //sleep for 10 seconds
}   

Deux d'entre eux ne fonctionne pas (l'application est fermée de force). Quelles sont les autres options je peux essayer?

mention de l'exception ou de journal de chat
veuillez afficher le logcat erreur
Vous devriez le faire dans un thread d'arrière-plan...

OriginalL'auteur good_evening | 2012-07-27