Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的碎片活动没有接收广播_Java_Android_Broadcastreceiver_Android Fragmentactivity - Fatal编程技术网

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

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);

我在我的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);
        }
    };
并在接收器为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>