当应用程序位于前台时如何处理 Firebase 通知

2023-12-15

我已将 Firebase Cloud Messaging 与我的应用程序集成。 当我从 Firebase 控制台发送通知时,如果应用程序处于后台或未打开,我会成功收到通知, 否则,如果应用程序位于前台或打开,我没有收到它。

感谢所有建议。


当应用程序位于前台时,不会自行生成通知。您需要编写一些额外的代码。收到消息时onMessageReceived()调用方法,您可以在其中生成通知。这是代码:

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
        Log.d("msg", "onMessageReceived: " + remoteMessage.getData().get("message"));
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
        String channelId = "Default";
        NotificationCompat.Builder builder = new  NotificationCompat.Builder(this, channelId)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(remoteMessage.getNotification().getTitle())
                .setContentText(remoteMessage.getNotification().getBody()).setAutoCancel(true).setContentIntent(pendingIntent);;
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel(channelId, "Default channel", NotificationManager.IMPORTANCE_DEFAULT);
            manager.createNotificationChannel(channel);
        }
        manager.notify(0, builder.build());
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当应用程序位于前台时如何处理 Firebase 通知 的相关文章

随机推荐

  • SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败

    我正在使用 python 2 7 10 request urllib2 Request url data urllib urlencode params f urllib2 urlopen request 导致以下异常 urlopen er
  • 计算文件夹内的文件夹数量

    你能帮我看看如何计算文件夹内的文件夹数量吗 弹出FolderBrowserDialog 后如何计算子文件夹并选择由3 个文件夹组成的主文件夹 我在用着 FolderBrowserDialog fbdialog new FolderBrows
  • 使用 JNI 将 java 与 C 定时器库接口

    我正在尝试使这个简单的示例发挥作用 import java io public class Timer public static void main String args setTimer new Runnable public voi
  • 在树莓派中安装QtVirtualkeyboard?

    我尝试在 Raspberry pi 中实现 Qt Virtualkeyboard 使用PyQt5 显示虚拟键盘但我没有找到它的前缀路径 bin plugin等文件夹 实际上整个Qt文件夹不存在 In 我之前的解决方案我使用了官方提供的 Qt
  • 使用 PHP 作为守护进程是否明智?

    我希望创建一个后台进程 有人告诉我这些进程通常是用 C 或类似的东西编写的 我最近发现 PHP 可以用来创建守护进程 如果我应该以这种方式使用 PHP 我希望得到一些建议 这是我对守护进程的要求 不断检查一行是否已被 添加到 MySQL 数
  • R - 传单限制 - 传单地图支持多少个标记?

    Data 我有一个包含 35 000 个纬度 经度位置的数据框 这些地点已绘制在交互式传单地图上 情况 我想通过 Markdown 文档在线发布地图 问题 当我将地图导出为 html 页面或以 markdown 格式时 地图为 Laggy
  • Apache FOP 可以用于将任意 HTML 转换为 PDF 吗?

    我尝试使用 Apache FOP 将 HTML 转换为 PDF HTML gt XHTML gt XSL FO gt PDF 我使用 Antenna House 中的 xhtml2fo xsl 进行 xhtml gt XSL FO 转换 它
  • 检测Delphi FMX ListBox何时滚动到底部?

    我需要检测用户何时向下滚动到 ListBox 的底部 以便我可以获取接下来的 25 个项目以在 listBox 中显示 有什么提示吗 好的 让我们分解一下 首先我们去滚动到项目在 FMX ListBox 单元中 procedure TCus
  • Win32:API 调用以列出服务器上的可用网络共享?

    假设我可以访问 IP 1 2 3 4 的 SMB 服务器 我如何确定可用共享的列表 当我输入 UNC 路径 1 2 3 4 时 Windows 资源管理器可以执行此操作 但命令提示符 dir 1 2 3 4 失败 我尝试了通常的 FindF
  • Javascript JSON.stringify 无法正确处理原型?

    我一直在初始化我的可重用类 如下所示 构造函数通常是复制构造函数 function Foo Foo prototype a 1 Foo prototype b 2 Foo prototype c var obj new Foo obj c
  • 如何检测 php 中被阻止的地址

    所以这是我的问题 我们正在尝试在我们的网站上设置 facebook like 和 twitter 推文按钮 但当 facebook 和 twitter 在计算机上被阻止时 它会导致浏览器变得无响应 所以我想做的是检测 Facebook 或
  • 适用于 Android、iOS 和 Flash 的 WebSocket 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 有人可以提供一个在 Android iOS iPhone iPad 和 Flash 不是 Flex 中实现 WebSocket 的示例吗 我找到了一
  • 用于使用已知模式解析字符串中的值的 sscanf 的 Java 等效项是什么?

    所以我有 C 背景 最初是 C 语言 尽管我已经有近 5 年没有使用过该语言了 我正在尝试从 Java 中的字符串中解析一些值 在 C 中我会使用 sscanf 在Java中 人们告诉我 使用Scanner或StringTokenizer
  • git:为什么我可以签出我删除的提交?

    我有一个包含三个提交的分支 mybranch a gt b gt c 我将其推送到远程仓库 然后我决定我不想保留提交b and c 所以按照描述删除它们here git reset hard HEAD 1 git reset hard HE
  • Python:“import X as X”(其中 X 相同)有什么意义?

    In aiohttp我发现很多说法import X as X 为什么要这样做 文件的链接 我不知道答案 但链接源文件的历史记录透露了它 构造from SOMEWHERE import X as X 与相同的X 需要消除警告mypy stri
  • 如何将我的“分离头”提交返回到主服务器[重复]

    这个问题在这里已经有答案了 看起来几天前我创建了一个名为detached HEAD并一直致力于此 我的正常流程是承诺master然后将其推至origin 但我无法推动detached HEAD 我的下一站搞砸了我 我选择了git check
  • 在 WPF 中限制“Auto”和“1*”的行高

    我有一个 WPF 应用程序 其布局由顶层的 3 行组成Grid 我希望中间行用完它需要的空间 它需要的最大空间是有限的 但取决于窗口的宽度 底行应用完剩余空间 棘手的部分是顶行 它的大小可能会根据切换大部分内容的可见性的按钮而变化 我希望它
  • 在添加包含第一个对象的对象时,如何防止 EF 插入数据库中已存在的对象?

    这是不言自明的 我有一个包含另一个类的类 我们称它们为主题和课堂 public class Subject public Classroom Class get set 我使用的是无状态外观 这意味着我的 DbContext 在恢复对象后立
  • SED:匹配同一行上的 2 个模式

    您好 我想使用 sed 删除一行 如果它与同一行中的 2 个正则表达式匹配 EG 该行以 开头 以 结尾 注释 下面的脚本将完成大部分工作 sed e d e d 文件名 该脚本将删除所有以 开头并以 结尾的行 我希望它仅在满足两个条件而不
  • 当应用程序位于前台时如何处理 Firebase 通知

    我已将 Firebase Cloud Messaging 与我的应用程序集成 当我从 Firebase 控制台发送通知时 如果应用程序处于后台或未打开 我会成功收到通知 否则 如果应用程序位于前台或打开 我没有收到它 感谢所有建议 当应用程