WhatsApp MessageService siempre se elimina poco después de salir de la aplicación

Hace un par de días noté que ya no recibo mensajes de WhatsApp hasta que inicio manualmente la aplicación, que es cuando los mensajes pendientes se envían todos a la vez.

Comencé mi investigación monitoreando el com.whatsapp.messaging.MessageServiceen el Administrador de aplicaciones.

Así es como se ve al principio, después de salir de WhatsApp:

ingrese la descripción de la imagen aquí

Y así es como se ve unos minutos después:

ingrese la descripción de la imagen aquí

Parece que se MessageServicecerró o se canceló. Para verificar esto, verifiqué con adb. Puedo ver el servicio al principio:

$ adb shell dumpsys activity services | grep wh
  * ServiceRecord{43deec28 u0 com.whatsapp/.messaging.MessageService}
    intent={act=com.whatsapp.messaging.MessageService.START cmp=com.whatsapp/.messaging.MessageService}
    packageName=com.whatsapp
    processName=com.whatsapp
    baseDir=/data/app/com.whatsapp-1.apk
    dataDir=/data/data/com.whatsapp
    app=ProcessRecord{42d19f90 10037:com.whatsapp/u0a10187}

Pero luego este servicio desaparece, aunque el proceso principal aún se está ejecutando:

$ adb shell ps | grep wh
u0_a187   10037 215   988084 78996 ffffffff 00000000 S com.whatsapp

El servicio no se termina al mismo tiempo. Lo he visto asesinado tan pronto como 6 minutos después de salir de WhatsApp, y tan tarde como 11 minutos. Pero en la gran mayoría de los casos, se termina en algún momento del minuto 8.

Examiné cuidadosamente logcatdurante el momento de la terminación del servicio con la siguiente consulta de logcat, que creo que silencia solo las cosas que no me importan:

adb logcat -v time LightSensor:s LightsService:s  SensorService:s SensorManager:s STATUSBAR-BatteryController:s BatteryService:s HeadsetStateMachine:s android.widget.GridLayout:s MP-Decision:s SignalStrength:s McClient:s McDaemon:s QcrilMsgTunnelSocket:s | grep -v ss_tz_mobicore | grep -v ss_daemon

No pude ver nada en los registros que indicara qué sucedió con el servicio. ¿Dejó de fumar? ¿Algo lo mató? ¿Cómo puedo averiguarlo?

Pensé que tal vez el servicio se canceló porque el sistema operativo tenía poca RAM, pero no parece ser así. Aquí está la memoria RAM en el momento de la terminación:

$ adb shell free -m
             total         used         free       shared      buffers
Mem:          1821         1587          234            0           75
-/+ buffers:               1511          310
Swap:          399          134          265

Mientras trabajaba en este problema, utilicé Titanium Backup para congelar todas las aplicaciones que podrían interferir con el funcionamiento normal de WhatsApp, así que estas son las aplicaciones que congelé:

  • Reverdecer
  • Amplificar
  • XPrivacidad

También desactivé "Per App Hacking", que es un módulo Xposed.

¿Alguna idea sobre cómo puedo obtener más información sobre por qué se cancela MessageService?

EDITAR 1 : ¿Es posible que se suponga que MessageService finalice y que WhatsApp confíe en GCM para recibir notificaciones cuando haya nuevos mensajes?

Respuestas (1)

He estado teniendo exactamente el mismo problema que el tuyo. También puedo ver que el servicio MessageService se elimina después de unos 10 minutos. Una vez que se cancela el servicio, los mensajes solo se reciben al abrir la aplicación. Mientras buscaba en Google hoy este problema, casualmente encontré este hilo que había publicado hace solo 3 horas.

Estoy usando un teléfono nuevo en el que instalé Cyanogenmod 13. Ya intenté cambiar varias configuraciones relacionadas con el uso de la batería, la optimización de la memoria, etc., pero fue en vano.

Empecé a usar este teléfono hace 2 días y el problema de WhatsApp ha estado ocurriendo desde entonces. Mañana intentaré desinstalar y reinstalar whatsapp desde Play Store, ya que este fue restaurado desde una copia de seguridad de Titanium Backup. Vi en un foro a alguien que resolvió un problema similar al hacer eso... también había restaurado desde una copia de seguridad de TiBu y estaba teniendo ese problema.

Por cierto, su teoría sobre GCM parece apuntar en la dirección correcta: en el teléfono de mi esposa, el servicio MessageService también se elimina después de unos 10 minutos, sin embargo, no tiene demoras en recibir mensajes de WhatsApp, por lo que tal vez realmente depende en GCM para eso.

Avíseme si logra algún progreso en la investigación o llega a una solución. Avísame también si puedo ayudarte con algo más.

Esto no responde a la pregunta original.
@sickgemini: Aunque no responde la pregunta, saber que MessageService también se detiene después de 10 minutos en un teléfono que funciona es muy valioso para mí. Me dice que el servicio se detiene por diseño, en lugar de que el sistema operativo lo termine. Estoy eliminando el voto negativo.