更多发送广播和接收的方式

时间:2012-09-20 19:11:09

标签: android broadcastreceiver

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

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

在我的接收器中,我只检查(intent.getAction()。equals(“UPDATE_SOMETHING”)),当然在AndroidManifest中的intent-filter我把它放到应用程序知道哪个接收器应该接收它。这种方法对我来说很好,而且我发现这可以通过其他方式完成。

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中放置一个动作......

我的问题是,这三种方式中哪一种最好用?,这种方式有什么不同吗? (写代码除外):)

1 个答案:

答案 0 :(得分:1)

第一种和第三种方法是相同的。如何将操作传递给intent(通过构造函数或方法)的唯一区别。这两种方法都会向收听UPDATE_SOMETHING操作的所有注册广播接收者发送广播。

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