Ответ
BroadcastReceiver имеет простой жизненный цикл, ограниченный вызовом метода onReceive(). Когда приходит соответствующий интент:
- Система создает экземпляр BroadcastReceiver
- Вызывает
onReceive(Context, Intent) - Уничтожает Receiver после выполнения
onReceive()
Важно:
onReceive()выполняется на главном потоке (не более 10 сек)- Долгие операции нужно выносить в сервис/WorkManager
- Нельзя запускать асинхронные операции без гарантии их завершения
Пример:
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == "MY_ACTION") {
// Обработка широковещательного сообщения
Toast.makeText(context, "Received!", Toast.LENGTH_SHORT).show()
}
}
}