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 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...