Android 为什么';我的广播接收器接收不到来自其他应用程序的广播?
应用程序A的清单中有此BroadcastReceiver(在中): 这个接收器:Android 为什么';我的广播接收器接收不到来自其他应用程序的广播?,android,android-intent,broadcastreceiver,android-manifest,Android,Android Intent,Broadcastreceiver,Android Manifest,应用程序A的清单中有此BroadcastReceiver(在中): 这个接收器: public class RemoteControl extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.w(TAG, "Look what I did!"); } } 我正试图从应用程序B触发此操作: public void onClick
public class RemoteControl extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w(TAG, "Look what I did!");
}
}
我正试图从应用程序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(),广播就按预期工作。最初我忘了在广播之前在Intent上使用setData()。这确实是问题所在:我一删除setData(),广播就按预期工作 我已将putExtra()改为用于意图元数据:
Intent i = new Intent("app.a.remotecontrol");
i.putExtra("url", "http://test/url");
sendBroadcast(i);
奇怪。代码看起来不错,我也一样。这是令人沮丧的。尝试添加到意图过滤器罗尼安:我认为这是问题所在,但唉!我用解决方案更新了这个问题:我在Intent上使用了setData(),这会以某种方式阻止它被发送。