在AndroidManifest.xml中注册了静态广播,接收屏幕亮起的广播
<receiver
android:name="util.MyBroadcastReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SCREEN_ON"/>
</intent-filter>
</receiver>
MyBroadcastReceiver类定义如下
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(MyApplication.TEST_DEBUG_TAG, "onReceive: 收到了广播 " + nowTime());
}
}
用adb shell模拟发送亮屏广播, am broadcast -a android.intent.action.SCREEN_ON,此时APP在运行,却收不到广播。
但发送am broadcast -a android.intent.action.SCREEN_ON -n com.example.test/util.MyBroadcastReceiver指定了具体的广播接收器,就能收到该广播。
请问是为什么?