我在 AndroidManifest.xml 中遇到了类似以下的内容:
<receiver android:name="com.testco.test.TestReceiver"/>
以上是TestReceiver扩展了BroadcastReceiver类。我以为接收器会接收所有意图,但显然它并不会,除非我在其中添加intent-filter标签。那么如果没有intent-filter,它会做什么?这是一个错别字还是它确实会执行某些操作?更新:我通过此链接找到了答案Trying to have a Broadcast Receiver with No filter 而不是使用常规字符串标识符调用广播,您可以将操作字符串设置为意图,然后广播它。参考示例代码:
Intent notifyIntent = new Intent(getApplicationContext(), TestReceiver.class);
notifyIntent.setAction("RECEIVE");
sendBroadcast(notifyIntent);
在 BroadcastReceiver 中的处理方式是相同的。