Ответ
Для запуска BroadcastReceiver нужно зарегистрировать его в манифесте или динамически в коде.
1. Статическая регистрация (в AndroidManifest.xml):
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
2. Динамическая регистрация (в Activity/Fragment):
val receiver = MyReceiver()
val filter = IntentFilter().apply {
addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED)
}
// Регистрация
registerReceiver(receiver, filter)
// Не забыть отменить регистрацию в onDestroy()
unregisterReceiver(receiver)
Пример BroadcastReceiver:
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (intent.action) {
Intent.ACTION_BOOT_COMPLETED -> Log.d("MyReceiver", "Device booted!")
}
}
}