Vous avez dit :
(en désactivant son récepteur de diffusion)
Tout d'abord, permettez-moi de souligner que Broadcast Receiver
y Service
n'est pas la même chose, vous obtiendrez la différence entre les deux dans la réponse.
Récepteurs de radiodiffusion :
Un BroadcastReceiver permet à une application de s'exécuter, pour une courte durée, en arrière-plan. de temps, en arrière-plan, en raison d'un autre événement. Lors de la gestion d'une diffusion, l'application dispose d'un ensemble fixe de temps (actuellement 10 secondes) pour effectuer son travail. Si elle ne pas terminé dans ce délai, l'application est considérée comme se l'application se comporte mal, et son processus est immédiatement mis en arrière-plan afin d'être tué pour la mémoire si nécessaire.
Comme vous pouvez le lire, BroadcastReceiver ne peut pas faire tourner une application en arrière-plan pendant plus de 10 secondes, ce qui est un peu limité, n'est-ce pas ?
Services :
- Citant le même auteur du même article :
Un service permet à une application d'implémenter des services à long terme opérations en arrière-plan. Il y a en fait beaucoup d'autres fonctions que les services fournissent.
Android La gestion des processus pour les services est différente de la diffusion car un nombre illimité de services peut demander à être exécuté pendant une durée d'être exécutés pendant une durée inconnue. Il peut ne pas y avoir assez de RAM pour pour faire fonctionner tous les services qui le demandent. garantie de pouvoir les maintenir en fonctionnement.
S'il y a trop peu de RAM, les services d'hébergement de processus seront immédiatement tués comme le sont les processus d'arrière-plan. Cependant, si approprié, Android se souviendra que ces services souhaitent rester en cours d'exécution, et redémarre leur processus ultérieurement, lorsque plus de RAM est disponible. Par exemple, si l'utilisateur se rend sur une page web qui nécessite une une grande quantité de RAM, Android peut tuer les processus de services d'arrière-plan comme la synchronisation jusqu'à ce que les besoins en mémoire du navigateur diminuent.
Les services peuvent négocier davantage ce comportement en demandant à être considérés comme "premier plan". Cette demande place le service dans un état "please don't tuer", mais nécessite l'envoi d'une notification à l'utilisateur. à propos de son fonctionnement actif, comme les lecteurs de musique, les anti-virus, etc ...
L'application doit montrer une notification, dans votre cas, c'est une application système qui n'a pas besoin de cette exigence, elle peut dire au système qu'elle doit être en cours d'exécution tout le temps et le système ne la tuera pas seulement si le système a besoin de plus de mémoire et qu'elle est le seul service encore en cours d'exécution (quelles sont les chances que cela se produise).
Pour en revenir à votre question, cela vaut-il le coup ? Je pense que oui, car c'est un gaspillage (vraiment un gaspillage) de la mémoire utilisée et qui ne sera pas libérée, sans but.
J'ajouterai :
Votre plan pour arrêter son récepteur de diffusion peut ne pas garder le service en arrière-plan, je vous recommande de désactiver l'application sous Setting > application > all et cliquez sur disable (si ce bouton est là) ou geler l'application en utilisant titanium backup.
Ref : http://Android-developers.blogspot.com/2010/04/multitasking-Android-way.html http://www.howtogeek.com/161225/htg-explains-how-Android-manages-processes/ http://developer.Android.com/training/articles/memory.html