没有intent-filter的Android BroadcastReceiver

Mau*_*ice 13 android

我在AndroidManifest.xml中遇到过类似的东西:

<receiver android:name="com.testco.test.TestReceiver"/>
Run Code Online (Sandbox Code Playgroud)

以上是TestReceiver扩展的BroadcastReceiver类.我认为接收器将接收所有意图,但显然它没有,除非我在其中添加intent-filter标签,否则它不起作用.那么如果它没有intent-filter,它会怎么做?这是一个错字还是真的做了什么?

更新:我在这个链接的帮助下想出了这个尝试让没有过滤器的广播接收器

您可以将操作字符串设置为intent,然后广播它,而不是使用通常的String标识符调用广播.示例代码供参考:

Intent notifyIntent = new Intent(getApplicationContext(), TestReceiver.class);
notifyIntent.setAction("RECEIVE");
sendBroadcast(notifyIntent);
Run Code Online (Sandbox Code Playgroud)

BroadcastReceiver的处理是一样的.

jee*_*eet 6

在隐式意图的情况下需要Intent过滤器,如果未指定intent过滤器,则必须显式调用它.因此,要调用此接收器,您需要调用:

Intent intent = new Intent(getApplicationContext(), com.testco.test.TestReceiver.class);
sendBroadcast(intent);`
Run Code Online (Sandbox Code Playgroud)