1

在我的应用程序中,我使用一种简单的方式来发送广播和接收它们。

Intent in = new Intent("UPDATE_SOMETHING");
sendBroadcast(in);

在我的接收器中,我只检查 if(intent.getAction().equals("UPDATE_SOMETHING")),当然在 AndroidManifest 中的意图过滤器中,我放置了以便应用程序知道哪个接收器应该接收它。这种方法对我来说很好,而且我发现这可以通过其他方式完成。

Intent in = new Intent(getApplicationContext(), Receiver.class);
in.setAction("UPDATE_SOMETHING");
sendBroadcast(in);

在这个例子中,我不需要将动作放在 AndroidManifest 中,我可以像上面一样在接收器中检查它(if(intent.get...))

还有第三种方式

Intent in = new Intent();
in.setAction("UPDATE_SOMETHING");
sendBroadcast(in);

并在 AndroidManifest 中执行操作...

我的问题是,这三种方式中哪一种最好用?这些方式之间有什么区别吗?(除了编写代码):)

4

1 回答 1

1

第一种和第三种方法是一样的。将动作传递给意图的唯一区别(通过构造函数或方法)。这两种方法都会向所有注册的广播接收者发送广播,这些接收者监听 UPDATE_SOMETHING 动作。

在第二种方法中,您将广播显式发送到您的 Receiver 类。所以没有其他广播接收器会看到/接收它。

于 2012-09-20T19:15:25.270 回答