无意图过滤器的Android广播接收器
我在一些安卓广告网络SDK中看到,他们声明无意图过滤器的Android广播接收器,android,android-intent,broadcastreceiver,intentfilter,Android,Android Intent,Broadcastreceiver,Intentfilter,我在一些安卓广告网络SDK中看到,他们声明BroadcastReceiver没有意图过滤器。大概是这样的: <receiver android:name="com.example.SampleReceiver" /> context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class)); 我启动了该应用程序,试图通过在手机上执行各种操作来触发一些事件,并注意到,onReceive()甚至没有被调用一次
BroadcastReceiver
没有意图过滤器。大概是这样的:
<receiver android:name="com.example.SampleReceiver" />
context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class));
我启动了该应用程序,试图通过在手机上执行各种操作来触发一些事件,并注意到,onReceive()
甚至没有被调用一次
所以问题是——这种无意图过滤器的广播接收器是如何工作的?可能需要通过代码创建意图过滤器?如果是,怎么做?如果没有,为什么它没有收到任何事件?这是怎么回事?我认为下面的问题/答案应该会给你一些线索:
如果您没有一些意图过滤器,那么接收内容的唯一方法就是显式地调用接收者。 这看起来像这样:
<receiver android:name="com.example.SampleReceiver" />
context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class));
另一个人已经在下面的帖子中回答了这个问题:
您现在的收视率很高:)这表明这种广播接收器并没有接收所有事件。但问题依然存在:那么,这样的接受者在做什么?无论如何,谢谢。我怀疑他们根据你看不到的代码设置了一个意图过滤器。但它仍然没有回答他们是如何做到的:)如果你想通过命令行测试它,你可以运行
adb shell am-n com.example/.SampleReceiver