49 votes

Comment pouvons-nous empêcher qu'un service soit tué par le système d'exploitation ?

J'utilise Service dans mon application et elle doit s'exécuter jusqu'à ce que mon application soit désinstallée, mais le problème est qu'elle est tuée par le système d'exploitation.

Comment pouvons-nous l'empêcher d'être tué par OS? Ou s'il est tué, pouvons-nous redémarrer ce service par programme ?

10voto

Chris Points 191

Remplacez la méthode onStartCommand() dans votre classe de service et retournez simplement START_STICKY (comme suggéré par "Ce n'est pas vide"). C'est tout ce dont vous avez besoin. Si le processus qui exécute votre service est tué (par une condition de mémoire faible par exemple), le système Android le redémarrera automatiquement (généralement avec un certain retard, comme 5 secondes).

N'utilisez plus onStart() comme suggéré dans une autre réponse, c'est obsolète.

9voto

Its not blank Points 1986

utilisation

 @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //**Your code **
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
} 

ref Cycle de vie de la documentation du service.

Modifier la méthode ajoutée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X