Я создал широковещательный приемник и зарегистрирован в в манифесте, используя следующий подход он работает отличнозагрузки завершен Broadcast приемник не работает для динамической регистрации
статический способ регистрации широковещательный приемник (работает нормально)
<receiver
android:name="DeviceRestartListener"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</category> -->
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Но когда я попытался зарегистрировать широковещательный приемник программным (вместо статического), используя следующий способ, он не работает Загрузка программного обеспечения (не работает)
DeviceRestartListener dataBroadcastReceiver = new DeviceRestartListener();
IntentFilter filter = new IntentFilter();
filter.addAction(
"android.intent.action.BOOT_COMPLETED")
//registerReceiver(dataBroadcastReceiver, filter); //DOESNT WORK
registerReceiver(dataBroadcastReceiver, filter, "android.permission.RECEIVE_BOOT_COMPLETED", null); //DOESNT WORK
Ошибка компиляции и ошибки времени выполнения. Но приемник не транслируются после устройства перезагружается
Благодаря
«Но приемник не получает широковещательную передачу после перезагрузки устройства» - почему? В конце концов, ваш экземпляр BroadcastReceiver больше не существует после завершения процесса, не говоря уже о перезагрузке. – CommonsWare