WhatsApp MessageService всегда отключается вскоре после выхода из приложения

Пару дней назад я заметил, что больше не получаю сообщения WhatsApp, пока не запущу приложение вручную, когда все ожидающие сообщения доставляются сразу.

Я начал свое расследование с мониторинга com.whatsapp.messaging.MessageServiceв диспетчере приложений.

Вот как это выглядит сначала, после выхода из WhatsApp:

введите описание изображения здесь

А вот как это выглядит через несколько минут:

введите описание изображения здесь

Похоже, MessageServiceлибо вышел, либо он был прекращен. Чтобы убедиться в этом, я проверил с помощью adb. Сначала я вижу службу:

$ 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}

Но потом этот сервис исчезает, хотя основной процесс все еще запущен:

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

Услуга не прекращается одновременно. Я видел, как его убивали уже через 6 минут после выхода из WhatsApp и поздно — через 11 минут. Но в подавляющем большинстве случаев он обрывается где-то на 8-й минуте.

Я внимательно изучил logcatмомент прекращения службы с помощью следующего запроса logcat, который, как я полагаю, отключает только то, что меня не волнует:

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

Мне не удалось увидеть в логах ничего, что намекало бы на то, что случилось с сервисом. Это бросило? Что-то убило? Как я могу узнать?

Я подумал, что, возможно, служба была остановлена ​​из-за того, что у ОС было мало оперативной памяти, но, похоже, это не так. Вот оперативная память на момент завершения:

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

Работая над этой проблемой, я использовал Titanium Backup, чтобы заморозить все приложения, которые могут помешать нормальной работе WhatsApp, поэтому я заморозил следующие приложения:

  • озеленение
  • Усиление
  • XPКонфиденциальность

Я также отключил «Взлом для каждого приложения», который является модулем Xposed.

Любые идеи о том, как я могу узнать больше о том, почему MessageService прекращается?

РЕДАКТИРОВАТЬ 1 : возможно ли, что MessageService должен быть прекращен, и что WhatsApp полагается на GCM, чтобы получать уведомления о появлении новых сообщений?

Ответы (1)

У меня была точно такая же проблема, как у вас. Я также вижу, что служба MessageService закрывается примерно через 10 минут. После того, как служба убита, сообщения принимаются только при открытии приложения. Сегодня, когда искал эту проблему, случайно нашел эту тему, которую вы разместили всего 3 часа назад.

Я использую новый телефон, на котором я установил Cyanogenmod 13. Я уже пытался изменить несколько настроек, связанных с использованием батареи, оптимизацией памяти и т. д., но безрезультатно.

Я начал использовать этот телефон 2 дня назад, и с тех пор возникает проблема с WhatsApp. Завтра попробую удалить и переустановить whatsapp из Play Маркета, так как этот был восстановлен из резервной копии Titanium Backup. Я видел на форуме кого-то, кто решил подобную проблему, сделав это ... он также восстановил из резервной копии TiBu и столкнулся с такой проблемой.

Кстати, ваша теория о GCM, кажется, указывает на правильное направление - в телефоне моей жены служба MessageService также убивается примерно через 10 минут, однако у нее нет никаких задержек в получении сообщений WhatsApp - так что, возможно, это действительно полагается на GCM для этого.

Дайте мне знать, если вы продвинетесь в расследовании или придете к решению. Дайте мне также знать, если я могу помочь вам с чем-нибудь еще.

Это не отвечает на исходный вопрос.
@sickgemini: хотя это и не отвечает на вопрос, мне очень важно знать, что MessageService также останавливается через 10 минут на работающем телефоне. Это говорит мне, что служба остановлена ​​по дизайну, а не прекращена ОС. Я удаляю отрицательный голос.