2011-06-23 4 views
2

J'ai fait très peu avec dev Android et je me demandais si quelqu'un a un bon tutoriel en ce qui concerne les services. Je cherche à faire une application qui commence et continue à boucle pour toujours, même en arrière-plan.Tutoriel pour les services Android?

Répondre

10

Il existe une mine de ressources sur les services si vous faites une recherche google simple, donc je ne vais pas vous expliquer comment fonctionnent les services. L'extrait de code ci-dessous utilise un service qui n'est pas lié à l'activité.

Mon approche utilise un temporisateur et une tâche, note que j'utilise une tâche qui se répète mais ce n'est pas nécessaire. Il y a d'autres façons d'aborder cela.

public class MyService extends Service { 

    private Task retryTask; 
    Timer myTimer; 

    private boolean timerRunning = false; 

    private long RETRY_TIME = 200000; 
    private long START_TIME = 5000; 

    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     // TODO Auto-generated method stub 
     super.onCreate(); 
     myTimer = new Timer(); 
     myTimer.scheduleAtFixedRate(new Task(), START_TIME, RETRY_TIME); 
     timerRunning = true; 

    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     if (!timerRunning) { 
      myTimer = new Timer(); 
      myTimer.scheduleAtFixedRate(new Task(), START_TIME, RETRY_TIME); 
      timerRunning = true; 
     } 

     return super.onStartCommand(intent, flags, startId); 

    } 

    public class Task extends TimerTask { 

     @Override 
     public void run() { 

      // DO WHAT YOU NEED TO DO HERE 
     } 

    } 

    @Override 
    public void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 

     if (myTimer != null) { 
      myTimer.cancel(); 

     } 

     timerRunning = false; 
    } 
} 

Vous démarrerez le service d'une activité à l'aide d'une intention

Intent intent = new Intent(WorkSelectionActivity.this,MyService.class); 
     startService(intent); 

Hope this helps

+0

Je cherchais un équivalent Java de 'NSTimer' de Objective-C, juste ce dont j'avais besoin! –

+0

hi, ** private Tâche retryTask; ** pourquoi vous n'avez pas utilisé cette variable –

+0

Parce que j'instancie la tâche ici myTimer.scheduleAtFixedRate (new Task(), START_TIME, RETRY_TIME); – Bear

0

Si vous cherchez le tutoriel vidéo recherche ensuite sur youtube avec étiquette Didacticiel de développement Android. Donc, il y a quatre parties. Et chacun sont génial. L'un d'eux connait le tutoriel Service.