从Service向Activity发送广播?

16

我在将一个广播从Service发送到Activity时遇到了问题。

这是我在Service类中的代码:

Intent intent = new Intent();
intent.setAction(BROADCAST_ACTION);
sendBroadcast(intent);

我有许多活动,在其中一个活动中,我有以下内容:

   class MyBroadcast extends BroadcastReceiver {
            @Override
            public void onReceive(Context ctxt, Intent i) {


                System.out.println("received");

            }
        };

我的问题是我的广播接收器没有接收到任何消息!!

求助!

编辑:

如果我有多个活动,如何向它们所有发送广播消息。换句话说,我可以将相同的广播接收器应用于所有活动吗?!

2个回答

3

在广播接收器可以接收任何内容之前,您必须先注册它。

请查看此问题


3

像其他人说的一样,你需要先注册活动才能接收到这些广播(请参见Flo的答案)

对于你的另一个问题(关于EDIT),如果你正在执行相同的操作,应该创建一个总体活动,并使你的其他活动扩展该活动。

然后在这个超类中,在onResume上实现广播接收器注册,在onStop上取消注册。


onStart 是 onStop 的对应方法,因此最好在 onStart 中注册,然后在 onStop 中取消注册。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接