为什么这个简单的广播接收器不起作用?



我有两个应用程序,每个应用程序都有一个辅助功能服务。一个应用程序的可访问性服务发送广播,而另一应用程序的无访问性服务接收广播。

以下是发送广播的服务:

Intent intent = new Intent();
intent.setAction("com.corps.mypackage");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //this is needed if broadcast not being sent from activity
sendBroadcast(intent);

这里是接收广播的服务:

IntentFilter intentFilter = new IntentFilter("com.corps.mypackage");
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//Do some things
}
};
registerReceiver(receiver, intentFilter);

广播未被接收。原因可能是什么?

根据Android文档:

上下文注册接收器接收广播,只要其注册上下文有效。例如,如果您在"活动"上下文中注册,那么只要活动未被破坏,您就会收到广播。如果您在应用程序上下文中注册,那么只要应用程序正在运行,您就会收到广播。

您的接收应用程序的上下文可能无效。请考虑改用清单声明的接收器。

最新更新