Android的广播接收器没有意图过滤器(Android BroadcastReceiver wit

2019-07-30 21:51发布

我在他们宣布一些Android广告网络的SDK看到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()不叫甚至一度。

所以,问题是 - 怎么没有这样的意图过滤器广播接收器的工作? 也许它需要被通过代码创建的意图过滤器? 如果是这样,怎么样? 如果没有,那么为什么没有收到任何事件? 这里发生了什么?

Answer 1:

如果你没有一些意图过滤器,接收的时候,唯一的办法是显式调用接收器。 这应该是这样的:

context.sendBroadcast(new Intent(context, MyBroadcastReceiverClass.class));

另一个人已经回答了下面的帖子这个问题: https://stackoverflow.com/questions/10051256/broadcast-receiver-not-receiving



Answer 2:

我认为以下问题/答案应该给你一些线索:

创建Android的所有意图相匹配的IntentFilter的



文章来源: Android BroadcastReceiver without intent filters