Comment garder un service en cours d'exécution en arrière-plan, même après que l'utilisateur quitte l'application? [fermé]

Je développe une application où je démarre un service si une fonctionnalité particulière (dans mon application) est activée par l'utilisateur. Je veux continuer à exécuter ce service même après que l'utilisateur quitte mon application. Comment puis-je faire cela? plz aide

31
demandé sur Bill the Lizard 2012-02-24 20:17:51

3 réponses

Droit de developer.android.com

Un service est un composant qui s'exécute en arrière-plan pour effectuer opérations de longue durée ou pour effectuer des travaux pour des processus distants. Un le service ne fournit pas d'interface utilisateur. Par exemple, un service peut jouer de la musique en arrière-plan alors que l'utilisateur est dans un autre application, ou il peut récupérer des données sur le réseau sans bloquer interaction de l'utilisateur avec une activité. Un autre élément, tel qu'un l'activité, peut commencer à la service et laissez-le courir ou lier à elle dans l'ordre pour interagir avec elle. Un service est implémenté en tant que sous classe de Service et vous pouvez en apprendre plus à ce sujet dans le guide du développeur de Services.

Donc, tant que vous créez un service et que l'utilisateur quitte votre application, il fonctionnera toujours. Tout comme l'exemple ci-dessus.

Cela devrait vous donner toutes les informations dont vous avez besoin: https://developer.android.com/guide/components/services.html

21
répondu EGHDK 2016-06-30 06:19:52

Vous pouvez utiliser Alarm manager pour n'importe quel service d'arrière-plan.

Pour un timing particulier, vous voulez effectuer quelque chose qui peut être un service.

Et pour le processus continue, vous pouvez démarrer le service à partir du gestionnaire d'alarme.

6
répondu Bhavesh Hirpara 2012-02-24 16:28:41

L'un des moyens suggérés par android:

Un service démarré peut utiliser le startForeground (int, Notification) . API pour mettre le service dans un État de premier plan, où le système le considère comme quelque chose que l'utilisateur est activement conscient et donc pas un candidat pour tuer lorsqu'il est faible en mémoire. (Il est toujours théoriquement possible que le service soit tué sous une pression de mémoire extrême de l'application de premier plan actuelle, mais en pratique cela ne devrait pas être un préoccupation.)

L'autre moyen est de redémarrer le service quand il est arrêté (le système appellera onDestroy () sur le service qui est arrêté)

4
répondu AndyW 2013-01-31 16:12:55