应用 A 在其清单中有此 BroadcastReceiver(在 <application> 内):
而这个接收器:
public class RemoteControl extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "Look what I did!");
}
}
我正在尝试从 App B 触发此操作:
public void onClick(View v) {
Log.w(TAG, "Sending stuff");
Intent i = new Intent("app.a.remotecontrol");
i.setData("http://test/url");
sendBroadcast(i);
}
无论出于何种原因,应用 A 中的 onReceive() 从未触发,即使它是从应用 B 广播的。这可能是什么原因?
编辑和解决方案:我忘了写我在广播之前在 Intent 上使用了 setData()。这确实是问题所在:一旦我删除了 setData(),广播就按预期工作了。