Search code examples
androidbroadcastreceiver

Why some broadcast receiver can only be registered through either Code or AndroidManifest


Some broadcast receivers only work if they are registered via code rather than defined in AndroidManifest.

For example:

SCREEN_ON, SCREEN_OFF

These actions will only work with receivers registered in code. No errors happen if they are registered in the manifest, but they never get called either.

What are the reasons for this undocumented behavior? Security?


Solution

  • It seems this answer is good for me but still this is not telling the reason why some can only be registered in AndroidManifest and some only through code

    The primary use of manifest-registered receivers is for broadcasts that may go on while your code is not in memory (e.g., BOOT_COMPLETED, your scheduled alarms via AlarmManager).