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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...