我的碎片活动没有接收广播



我在FragmentActivity中注册了一个BroadcastReceiver,如下所示:

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
setMapLocations(intent);
}
};
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
setMapLocations(intent);
}
};

并且启动接收器处于start((:

public void onStart() {
super.onStart();
LocalBroadcastManager.getInstance(this).registerReceiver((mMessageReceiver),
new IntentFilter("MyNotificationData"));
}

并且我的广播发送者在清单中定义如下:

<service
android:name=".TrackerMessagingService"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>

问题是onReceive((永远不会被命中,即使完全相同的代码在同一应用程序的AppCompatActivity中运行良好。知道发生了什么事吗?广播服务是否不能很好地利用FragmentActivity?

我不知道为什么这样做,但我能够通过将BroadcastReceiver代码留在AppCompatActivity中来解决这个问题。在这种情况下,两个BroadcastReceiver都被击中了。

最新更新