Comment boucler un service?

Mon service a besoin de vérifier quelque chose de chaque minute et

while(true)
{
   Thread.sleep(60000) 
   //REST OF CODE HERE//
}

ne fonctionne pas. La présentation de la demande de gel et de me demander de force de l'arrêter.

Je suis sûr que le problème est avec la boucle while, mais je pensais que c'était la seule façon de répéter à l'infini les service quand les onStart() la méthode s'exécute.

Toutes les suggestions sont les bienvenues.

MODIFIER

Je le fixe et dans le cas où vous vous demandez comment le code ressemble bien là vous allez:

@Override
public void onStart(Intent intent, int startId) {
    //TODO Auto-generated method stub
    super.onStart(intent, startId);
    Toast.makeText(this, "Service running", Toast.LENGTH_SHORT).show();

    handler = new Handler(){

        @Override
        public void handleMessage(Message msg) {
            //TODO Auto-generated method stub
            super.handleMessage(msg);
            Toast.makeText(protectionService.this, "5 secs has passed", Toast.LENGTH_SHORT).show();
        }

    };



    new Thread(new Runnable(){
        public void run() {
        //TODO Auto-generated method stub
        while(true)
        {
           try {
            Thread.sleep(5000);
            handler.sendEmptyMessage(0);

        } catch (InterruptedException e) {
            //TODO Auto-generated catch block
            e.printStackTrace();
        } 

        }

                        }
    }).start();
}

Fondamentalement, le service est appelé et les tâches de ce service sera répété toutes les 5 secondes dans ce cas.

Je tiens à remercier vineetska, Janusz et inazaruk pour ce qui suggère d'utiliser des Gestionnaires. Je tiens à remercier tous ceux qui ont répondu ainsi, votre aide a été très apprécié.

OriginalL'auteur Batzi | 2011-08-19