首页 > 解决方案 > 如何在从服务运行的活动中显示片段?

问题描述

我通过扩展 FirebaseMessagingService 创建了一个用于处理 Firebase 云消息传递的服务。现在我想在正在运行的活动的底部显示一个片段。有多种活动。我希望在扩展 FirebaseMessagingService 的服务的 onMessageReceived() 方法中收到通知时,该片段应该在用户可见的活动中弹出。我不知道该怎么做。

这是服务类:

import android.util.Log;

import androidx.annotation.NonNull;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;

import java.util.Map;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    private static final String TAG = "MyFCMService";

    @Override
    public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
        if (remoteMessage.getData().size() > 0) {
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());



            //Display Fragment with the Message Data Payload



        }
    }
}

我创建了一个片段类,并希望在用户可见的任何活动上显示该片段。我怎样才能做到这一点?

标签: androidandroid-layoutandroid-fragmentsfirebase-cloud-messaging

解决方案


我可以建议的方法之一是:

  • 创建一个使用自定义底部片段的自定义广播接收器
  • 为简洁起见静态注册该广播接收器,或者如果有很多监听自定义 IntentFilter,则在每个 Activity 中注册
  • 当您收到来自 Firebase 的新消息时发送本地广播

推荐阅读