我在一些 Android 广告网络 sdks 中看到他们声明BroadcastReceiver
没有意图过滤器。像这样的事情:
<receiver android:name="com.example.SampleReceiver" />
我的猜测是这样的接收器会捕获所有可能的事件。所以我尝试自己做并创建了一个SampleReceiver
:
public class SampleReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
System.out.println("Event captured: " + intent.getAction());
}
}
我已经启动了该应用程序,尝试通过在手机上执行各种操作来触发一些事件,并注意到onReceive()
一次也没有被叫过。
所以问题是 - 这种没有意图过滤器的 BroadcastReceiver 如何工作?也许它需要通过代码创建意图过滤器?如果是这样,怎么办?如果没有,那么为什么它没有收到任何事件?这里发生了什么?
如果您没有某些意图过滤器,则接收某些内容的唯一方法是显式调用接收者。
这看起来像这样:
context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class));
另一个人已经在以下帖子中回答了这个问题:https://stackoverflow.com/questions/10051256/broadcast-receiver-not-receiving https://stackoverflow.com/questions/10051256/broadcast-receiver-not-receiving
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)