安卓系统中多个广播接收器是否合法?

7

这是真的吗?

每个应用程序只能指定一个BroadcastReceiver类。如果您需要将来自不同SDK的两个或多个BroadcastReceivers合并,您需要创建自己的BroadcastReceiver类,该类将接收所有广播并为每种广播类型调用适当的BroadcastReceivers。

http://code.google.com/apis/analytics/docs/mobile/android.html#google-play-tracking

对于<receiver/>,在清单文档中没有提到此问题。

http://developer.android.com/guide/topics/manifest/receiver-element.html

2个回答

22

引用的段落来自于Google移动分析包的文档。可能是因为Google移动分析包不能支持多个BroadcastReceiver来接收Google移动分析包的广播。

Android本身当然可以在每个应用程序中有多个BroadcastReceiver


好的,这正是我所想/希望的...但那种语言并不是很清晰。 - danb

6

Android平台只会将应用的安装跟踪意图传递给单个接收器。这意味着,如果您的应用使用了两个安装跟踪器,则不能放置两个包含相同操作"com.android.vending.INSTALL_REFERRER"的接收器。如果是这种情况,那么您可以添加一个类似于meta-data标签的东西。

<meta-data android:name="forward.1"  android:value="<other receiver's name>" />

将Intent发送到接收器,以便两个接收器都能接收到Intent。


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