2011-12-13 2 views
0

Je crée le fil suivant dans mon onCreate mais réalisé que cet appel a besoin d'exécuter toutes les 20 minutes environ:La meilleure façon de définir une se reproduise tâche android

Thread t = new Thread() { 
    public void run(){ 
     setTopUsers(); 
    } 
    }; 

    t.start(); 

private void setTopUsers() { 
    ... 

    for(Map.Entry<Double,String> entry : myMap.entrySet()) { 
      key = entry.getKey(); 
      value = entry.getValue(); 

      if(...) 
       view.setText(...) 
     } 
} 

La méthode qui est appelé processus simplement des informations de un TreeMap et affiche les résultats à l'interface utilisateur. J'essaie de comprendre quelle est la meilleure façon de gérer cela: 1) Créer un minuteur qui fonctionne sur un thread séparé (mais j'ai lu ce n'est pas une bonne idée), 2) Créer un service Intention qui traite toutes les 20 minutes (semble être exagéré).

Des suggestions?

Répondre

1

Quelque chose comme cela devrait fonctionner:

Intent intent = new Intent(this, ProcessService.class); 
PendingIntent pIntent = PendingIntent.getService(this, 0, intent, 0); 
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
am.cancel(pIntent); 
am.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), INTERVAL, pIntent); 
+0

merci pour les détails (ceci est décrit dans la première réponse) – user836200

0

Laissez l'utilisateur décider. Implémentez les deux, il n'y a rien de pire qu'un processus répétitif que l'utilisateur ne peut pas contrôler.

Questions connexes