comment whatsapp service est redémarré même si je force arrêter l'application?

j'exécute whatsapp (nous pourrions l'appeler désormais appX) dans le périphérique A. Je vais gérer les applications -> forcer la fermeture pour qu'appX soit fermé et je ne vois plus appX comme exécutant des services.

maintenant, après 5 minutes, j'envoie un message de l'appX d'un autre périphérique (périphérique B) au périphérique a appX (celui que nous l'avons tué). Voici les 2 scénarios que j'ai testé :

  • appareil A avec android 2.1: il ne reçoit jamais le message, donc nous pourrions dire qu'aucun d'appX les services s'est remis en marche. Il ne reçoit le message que si l'utilisateur redémarre manuellement l'application.

  • périphérique a avec android 2.3.6: pour une raison magique, peu importe depuis combien de temps appX a été tué, dès que nous envoyons le message du périphérique B -> Périphérique A reçoit le message, donc, le service d'appX est redémarré. Note : tout le temps qu'appX a été fermé et sans recevoir de notification, Je n'ai pas été en mesure de voir les services en cours d'exécution d'appX dans manage applications, donc cela signifie que ce service magique est redémarré dès qu'il reçoit un message/notification

je sais que cela semble bizarre, et beaucoup de gens diront que c'est impossible, mais encore une fois, cela a été testé sur ces 2 appareils.

j'essaie d'accomplir ce même comportement, donc toute aide sera appréciée.

21
demandé sur Michael Donohue 2012-06-28 05:43:35

4 réponses

Avant de voter cette réponse, veuillez tenir compte du fait que réponse est près de 3 ans maintenant (en parlant de mai 2015) et les choses peuvent ont changé!

https://developers.google.com/android/c2dm/), alors que l'application a unReceiver pour la réception des Notifications Push et obtient réveiller par ce message. Android C2DM est / était disponible avec Android 2.2, c'est la raison pour laquelle vous ne pouvez pas voir le même comportement sur votre appareil avec Android 2.1 en marche.

soit dit en passant: comme vous pouvez le voir, C2DM est déprécié depuis le 26 juin 2012. Ainsi, au lieu de C2DM, on devrait utiliser GCM (voir:http://developer.android.com/guide/google/gcm/gs.html)

46
répondu herom 2015-05-12 07:11:07

à partir de Android 3.1 (API 12),si une application est arrêtée de force, elle ne redémarrera pas tant que l'utilisateur n'exécutera pas manuellement l'application.

cela se produira même si l'application contient un Service actif BroadcastReceiver.

Vous pouvez trouver la documentation officielle ici.

12
répondu bonnyz 2015-01-09 09:54:31

Je n'ai aucune idée du service whatsApp.

mais il est possible qu'après l'application force stop, redémarre le service de l'application.

j'utilise START_STICKY service pour mon chatApp. je dois faire la même chose donc j'utilise le service START_STICKY donc quand mon application tue ou force l'arrêt du réglage, après quelques secondes mon service redémarre et je peux me connecter à mon serveur xmpp et recevoir le message entrant.

2
répondu Lokesh 2015-01-09 11:33:02

rien de magique ici appX utilise des notifications push via la plateforme android GCM https://developer.android.com/google/gcm/index.html dans GCM l'application s'enregistre pour un récepteur braodcast et le récepteur de diffusion démarre le service sur réception de la notification push. Android GCM est dépendant des services google play qui sont disponibles sur android 2.2 et au-delà que donc vous n'avez pas vu le message sur le périphérique 2.1

1
répondu Pramod Yadav 2015-01-14 05:41:16