作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
应用 A 在其 list 中(在
这个接收器:
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(),广播就按预期工作了。
最佳答案
最初我忘了写我在广播之前在 Intent 上使用了 setData() 。这确实是问题所在:一旦我删除了 setData(),广播就按预期工作了。
我已经改用 putExtra() 代替 Intent 元数据:
Intent i = new Intent("app.a.remotecontrol");
i.putExtra("url", "http://test/url");
sendBroadcast(i);
关于android - 为什么我的 BroadcastReceiver 收不到来自其他应用程序的广播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179063/
我是一名优秀的程序员,十分优秀!