У меня есть простой BroadcastReceiver, настроенный на что-то, когда пользователь получает входящее SMS.
ОК.
Но мне нужно, чтобы он работал в фоновом режиме и когда устройство спит.
Не совсем.
Так я бы использовал Службу, которая запускает BroadcastReceiver?
Нет.Ваш BroadcastReceiver
должен быть в манифесте, поэтому он может быть вызван независимо от того, запущен ли какой-либо другой код.Вот почему я говорю «не совсем» для «запуска в фоновом режиме» - вы НЕ ХОТИТЕ, чтобы код работал постоянно в фоновом режиме.Скорее, вы хотите иметь возможность получать широковещательные сообщения в любой момент, и для этого нужно поместить получателя в манифест.
Если так, может кто-нибудь дать мне какой-нибудь псевдокод?*
https://github.com/commonsguy/cw-advandroid/tree/master/SMS/Monitor
А как это будет работать, если устройство спит?
Не будет.Однако входящее SMS, как и входящий телефонный звонок, разбудит устройство.