web-dev-qa-db-fra.com

Comment garder un service fonctionnant en arrière-plan même après que l'utilisateur a quitté l'application?

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 souhaite continuer à exécuter ce service même après que l'utilisateur a quitté mon application. Comment puis-je faire ceci? aide plz

32
Saurabh Agrawal

Directement de developer.Android.com

Un service est un composant qui s'exécute en arrière-plan pour effectuer des opérations de longue durée ou pour effectuer des travaux pour des processus distants. Un service ne fournit pas d'interface utilisateur. Par exemple, un service peut lire de la musique en arrière-plan pendant que l'utilisateur se trouve dans une autre application, ou il peut récupérer des données sur le réseau sans bloquer l'interaction de l'utilisateur avec une activité. Un autre composant, tel qu'une activité, peut démarrer le service et le laisser s'exécuter ou s'y lier afin d'interagir avec lui. Un service est implémenté en tant que sous-classe de service et vous pouvez en savoir 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

22
EGHDK

vous pouvez utiliser le gestionnaire d'alarmes pour n'importe quel service d'arrière-plan.

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

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

6
Bhavesh Hirpara

L'un des Android moyen suggéré:

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

Une autre façon est de redémarrer le service lorsqu'il est arrêté (le système appellera onDestroy () sur le service qui est arrêté)

4
AndyW