为什么某些广播接收器只能通过Code或AndroidManifest注册

N S*_*rma 16 android broadcastreceiver

某些广播接收器仅在通过代码注册而不是在AndroidManifest中定义时才起作用.

例如:

SCREEN_ON, SCREEN_OFF
Run Code Online (Sandbox Code Playgroud)

这些操作仅适用于在代码中注册的接收器.如果它们在清单中注册,则不会发生错误,但它们也永远不会被调用.

这种无证行为的原因是什么?安全?

N S*_*rma 1

看来这个答案对我有好处,但这仍然没有说明为什么有些只能在 AndroidManifest 中注册而有些只能通过代码注册的原因

清单注册接收器的主要用途是当您的代码不在内存中时可能会继续进行的广播(例如,BOOT_COMPLETED,通过 AlarmManager 安排的警报)。