android - porque - whatsapp esta temporalmente fuera de servicio iphone
¿Cómo se reinicia el servicio de WhatsApp incluso si fuerzo la aplicación de detención? (4)
Estoy ejecutando whatsapp (podríamos llamarlo appX de ahora en adelante) en el dispositivo A. Voy a administrar aplicaciones -> forzar el cierre para que appX se cierre y ya no veo a appX como servicios en ejecución.
Ahora, después de 5 minutos, envío un mensaje desde la aplicación de otro dispositivo (dispositivo B) al dispositivo A, la aplicación X (la que eliminamos). Aquí están los 2 escenarios que probé:
dispositivo A con Android 2.1: nunca recibe el mensaje, por lo que podríamos decir que ninguno de los servicios de appX se reinició. SOLO recibe el mensaje si manualmente el usuario reinicia la aplicación.
dispositivo A con Android 2.3.6: por ALGUNA razón mágica, no importa cuánto tiempo haya pasado desde que se eliminó la aplicaciónX, tan pronto como enviamos el mensaje desde el dispositivo B, el dispositivo A recibe el mensaje, por lo tanto, el servicio de la aplicación se reinicia. Nota: todo el tiempo que se cerró appX y SIN recibir ninguna notificación, no pude ver ningún servicio en ejecución de appX en las aplicaciones de administración, por lo que esto significa que este servicio mágico se reinicia tan pronto como recibe un mensaje / notificación
Sé que suena raro, y mucha gente dirá que esto es imposible, pero nuevamente, esto ha sido probado en estos 2 dispositivos.
Estoy tratando de lograr este mismo comportamiento, por lo que cualquier ayuda será apreciada.
Antes de votar arriba / abajo esta respuesta, tenga en cuenta que la respuesta tiene casi 3 años ahora (hablando de mayo de 2015) y ¡las cosas pueden haber cambiado!
¡No creo que sea algo mágico lo que pasa aquí! Es solo C2DM de Android (consulte: https://developers.google.com/android/c2dm/ ), mientras que la aplicación tiene un Receiver
registrado para notificaciones push entrantes y se despierta con este mensaje. Android C2DM está / estaba disponible con Android 2.2, esa es la razón por la que no puede ver el mismo comportamiento en su dispositivo con Android 2.1 en funcionamiento.
Por cierto: como puede ver, C2DM está en desuso desde el 26 de junio de 2012. Así que en lugar de C2DM, se debe usar GCM (consulte: http://developer.android.com/guide/google/gcm/gs.html )
Comentario útil: GCM necesita conexión a internet disponible. Puede usar cualquier otro receptor de difusión como SMSReceiver para pasar esta limitación.
A partir de Android 3.1 (API 12), si una aplicación se detiene por la fuerza, no se reiniciará hasta que el usuario la ejecute manualmente de nuevo .
Esto sucederá incluso si la aplicación contiene un Service
o un BroadcastReceiver
activo.
Puedes encontrar la documentación oficial here .
No tengo idea sobre el servicio de WhatsApp.
Pero es posible que después de forzar la aplicación, reinicie el servicio de la aplicación.
Utilizo el servicio START_STICKY para mi aplicación de chat. Tengo que hacer lo mismo, así que uso el servicio START_STICKY, de modo que cuando mi aplicación termine o se detenga la configuración, después de unos segundos, reinicie mi servicio y puedo iniciar sesión en mi servidor xmpp y recibir un mensaje entrante.
no es nada mágico aquí appX usa notificaciones push a través de la plataforma android GCM https://developer.android.com/google/gcm/index.html en GCM la aplicación se registra para un receptor de transmisión de audio y el receptor de difusión inicia el servicio para recibir la notificación push . Android GCM depende de los servicios de Google Play que están disponibles en Android 2.2 y más allá de eso, por lo tanto, no vio el mensaje en el dispositivo 2.1