我有一个活动,它在方法onCreate(...)
中使用 IntentFilter 创建 BroadcastReceiver :
IntentFilter iFilter = new IntentFilter("action");
receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
}
};
registerReceiver(receiver, iFilter);
另一方面是 IntentService ,它将发送一些数据:
Intent intent = new Intent(getApplicationContext(), receiver.class);
intent.setAction("action");
[...]
sendBroadcast(intent);
但它似乎无法奏效。没有收到广播 我的服务类是在android lib中,也许这会给你带来麻烦。
感谢您的任何建议。
答案 0 :(得分:10)
只需使用您的操作创建意图。
Intent intent = new Intent("action");
[...]
sendBroadcast(intent);
并考虑将“action”重命名为更有意义的内容,例如“com.my.package.actions.SOME_ACTION”。
如果您只希望应用程序组件接收广播,请使用:
signature
保护级别在您的清单中注册权限(并为该权限定义使用权限)。更多here。sendBroadcast(intent, permission)
,并在1中指定权限。答案 1 :(得分:6)
如果意图仅在您的应用内,请考虑使用LocalBroadcastManager