Подтвердить что ты не робот

Вызов метода в системном процессе без ошибки пользователя

Я использую службу прослушивателя уведомлений в android 4.4, и я сталкиваюсь с ошибкой, из-за которой мое приложение перестает получать уведомления.

Это довольно случайный случай, но когда это происходит, я вижу:

12-31 01:40:44.080  21680-21680/? W/ContextImpl﹕ Calling a method in the system process without a qualified user: 
android.app.ContextImpl.sendOrderedBroadcast:1192 
android.app.ContextImpl.sendOrderedBroadcast:1183       
android.content.ContextWrapper.sendOrderedBroadcast:390 
com.android.settings.applications.ProcessStatsDetail.checkForceStop:314 
com.android.settings.applications.ProcessStatsDetail.onResume:108

в журналах. Я даже могу воссоздать это, просто введя раздел "статистика процесса" инструментов разработчика на телефоне. Как только я выбираю приложение, которое использует прослушиватель уведомлений, оно выдает это предупреждение и отвязывает и разрушает службу, и когда она воссоздается, она не всегда снова принимает события.

Я не уверен, почему это произойдет, может ли кто-нибудь пролить свет?

4b9b3361

Ответ 1

1) NotificationListenerService запускается системой, а код sendOrderedBroadcast выдает предупреждение, если он был вызван системным процессом (здесь)

2) Это всего лишь предупреждение. Вероятно, в вашем коде произошел сбой где-то еще. Когда сбой NotificationListenerService, Android не перезапускает его, если вы не переключите разрешение или не перезагрузите телефон. Ищите еще один сбой и попробуйте любой из этих методов, чтобы перезапустить его, если он есть. При запуске он будет не работать.