Android BroadcastReceiver没有意图过滤器

前端之家收集整理的这篇文章主要介绍了Android BroadcastReceiver没有意图过滤器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 AndroidManifest.xml中遇到过这样的事情:
<receiver android:name="com.testco.test.TestReceiver"/>

以上是TestReceiver扩展了BroadcastReceiver类.我认为接收者将收到所有意图,但显然没有,除非我添加意图过滤器标签,否则它不起作用.那么如果没有意图过滤器,它会做什么呢?是错字还是真的做点什么?

更新:我在这个链接Trying to have a Broadcast Receiver with No filter的帮助下想出了这一点

可以使用通常的字符串标识符来调用广播,而不必将动作字符串设置为intent,然后将其广播.示例代码供参考:

Intent notifyIntent = new Intent(getApplicationContext(),TestReceiver.class);
notifyIntent.setAction("RECEIVE");
sendBroadcast(notifyIntent);

BroadcastReceiver的处理是一样的.

解决方法

在隐式意图的情况下,需要一个Intent过滤器,如果未指定intent过滤器,则必须显式调用它.所以要调用这个接收器,你需要调用
Intent intent = new Intent(getApplicationContext(),com.testco.test.TestReceiver.class);
sendBroadcast(intent);`

猜你在找的Android相关文章