Java 我的碎片活动没有接收广播
我在我的FragmentActivity中注册了一个BroadcastReceiver,如下所示:Java 我的碎片活动没有接收广播,java,android,broadcastreceiver,android-fragmentactivity,Java,Android,Broadcastreceiver,Android Fragmentactivity,我在我的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);
}
};
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
setMapLocations(intent);
}
};
并在接收器为onStart()时启动:
我的广播发送者在清单中定义如下:
<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中运行良好。知道发生了什么吗?广播服务不能很好地处理碎片活动吗?我不知道为什么这样做有效,但我可以通过将广播接收器代码保留在AppCompatActivity中来解决这个问题。在这种情况下,两个BroadcastReceiver都被击中。我不知道为什么这样做有效,但我可以通过将BroadcastReceiver代码保留在AppCompative活动中来解决这个问题。在这种情况下,两个广播接收器都被击中。显示应用程序使用“MyNotificationData”操作发送广播接收器的代码。顺便说一句,你发布的清单与广播接收器无关。@SonTruong我不知道你为什么这么说。这是声明FirebaseMessagingService的有文档记录的方法。显示应用程序使用“MyNotificationData”操作发送广播接收器的代码。顺便说一句,你发布的清单与广播接收器无关。@SonTruong我不知道你为什么这么说。这是声明FirebaseMessagingService的有文档记录的方法。
<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>