Как стать автором
Обновить

Комментарии 12

>> Создаем класс SmsService, расширяющий класс Service…

Что, простите?
Я намекаю на то, что он ничего не расширяет. Он просто наследуется и получает «дары» родителя.
А почему Вы решили, что стандартный обработчик смс имеет нулевой приоретет?
Вообще, в официальной документации на это не натыкался, но вот здесь человек пишет:
Looks like the system default SMS processing application uses priority of 0, so you could try 1 for your application to be before it.
Ну и, как показала практика, при нулевом значении фишка не срабатывает, поставил 100 — заработало.
Просто насколько я понял, что чем больше число, тем выше приоритет. Соответственно, если у стандартного обработчика нулевой приоритет, то он срабатывает самым последним.
Ну да, просто если мы у нашего intent-filter приоритет не укажем, то он тоже будет нулевым. Соответственно, какой обработчик сработает первым — неизвестно, а нам нужно, чтобы наш обработчик сработал первым — вот и ставим число побольше.
Просто я писал свой черный список для смс и сталкивался с теми же проблемами
Исполнение сервиса происходит в основном потоке, поэтому делегирование обработчика сообщения в отдельный сервис ничего в данном случае не дает. В случае задержки более 10-ти секунд получите ANR
Выход из ситуации — запускать Runnable, я правильно понимаю?
Или использовать IntentService и все операции выполнять в onHandleIntent.
Несомненно — лучший комментарий!

Отлично! Большое спасибо за статью :)) Благодаря именно таким статьям и учишься программированию!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории