android - 如何在从服务运行的活动中显示片段?
问题描述
我通过扩展 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
}
}
}
我创建了一个片段类,并希望在用户可见的任何活动上显示该片段。我怎样才能做到这一点?
解决方案
我可以建议的方法之一是:
- 创建一个使用自定义底部片段的自定义广播接收器
- 为简洁起见静态注册该广播接收器,或者如果有很多监听自定义 IntentFilter,则在每个 Activity 中注册
- 当您收到来自 Firebase 的新消息时发送本地广播
推荐阅读
- html - onbeforeunload 在 HTML 中不起作用
- r - 使用 R 或数据挖掘工具从在线服装网站抓取图像 URL
- python-3.x - Python - 为包装函数提供与包装函数相同的名称
- javascript - 如何将页面加载、登录详细信息填充到嵌入 iframe 的表单中?
- git - 想了解错误原因:src refspec master does not match any。错误:未能将一些参考推送到“https://github.com/xyz.git”
- html - 如果打印到第二页,如何动态添加分页符
- html - 如何有一个带有背景颜色和不同轮廓颜色的锯齿形边框?
- ruby-on-rails - docker-compose 正在创建具有权限的文件
- ruby-on-rails-5 - 将 rails2 移动到 5 并出现错误 - 未定义的方法“with_scope”
- django - Django 从字符串变量中获取类