在Android开发中,有些系统广播是不能在清单文件中静态注册的,只能通过registerReceiver方法进行动态注册(Android文档这样描述:You cannot receive this through components declared in manifests, only by explicitly registering for it with {@link Context#registerReceiver(BroadcastReceiver, IntentFilter) Context.registerReceiver()}.)
下面是几个常见的只能动态注册的广播:
1、当设备没有进行交互,屏幕关闭发送的广播:
public static final String ACTION_SCREEN_OFF = "android.intent.action.SCREEN_OFF";
Android官方文档如下定义:
/**
* Broadcast Action: Sent when the device goes to sleep and becomes non-interactive.
* <p>
* For historical reasons, the name of this broadcast action refers to the power
* state of the screen but it is actually sent in response to changes in the
* overall interactive state of the device.
* </p><p>
* This broadcast is sent when the device becomes non-interactive which may have
* nothing to do with the screen turning off. To determine the
* actual state of the screen, use {@link android.view.Display#getState}.
* </p><p>
* See {@link android.os.PowerManager#isInteractive} for details.
* </p>
* You <em>cannot</em> receive this through components declared in
* manifests, only by explicitly registering for