Android 通知 FCM 与简单拉取

2024-03-05

对于我的 Android 应用程序,我需要从服务器接收一些通知。通知的时间要求并不严格,当用户打开应用程序时检查新通知就足够了,因此根本没有后台活动。

我注意到,建议使用 FCM(Firebase Cloud Messaging)之类的服务来发送任何类型的通知。然而,我觉得我会为 FCM 的一个非常简单的任务引入一个相当大的库,这可能会导致比仅使用简单的套接字向服务器请求新通知更糟糕的电池寿命。

因此,我想知道在我的情况下,使用 FCM 这样的服务是否更好,或者只是简单地获取通知。


我觉得我会为 fcm 的一个非常简单的任务引入一个相当大的库,这可能会导致比仅使用简单的套接字向服务器请求新通知更糟糕的电池寿命。

FCM 对所有应用程序使用一个共享的长寿命套接字。您手机上的其他应用程序很有可能已经在使用 FCM,因此让您的应用程序也使用套接字连接根本不会增加电池使用量。

所以我想知道在我的情况下,使用 fcm 这样的服务是否更好,或者只是简单地拉取通知。

尽管您的应用程序不需要任何后台推送消息,但我仍然建议您使用 FCM 向应用程序通知任何事件,而不是每次启动应用程序时询问服务器。轮询与事件的一般原则适用于此。 FCM 实施起来并不困难。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 通知 FCM 与简单拉取 的相关文章

随机推荐

  • 重新初始化 ScheduledExecutorService 中的修复延迟

    根据我的要求 我必须在一段时间后执行一些特定的代码 我选择做同样的事ScheduledExecutorService scheduleWithFixedDelay runnable 0 5 TimeUnit SECONDS 它对我来说工作得
  • Pandas DataFrame 列命名约定

    有没有常用的 Pandas DataFrame 列命名约定 是PEP8 https www python org dev peps pep 0008 在这里推荐 例如实例变量 意识到大量数据是从带有标题的外部源加载的 但我很好奇当我必须自己
  • 使用 R 文本挖掘包保留土耳其语字符

    首先我要说的是 我仍然是 R 的初学者 目前 我正在使用 tm 包尝试土耳其语文本的基本文本挖掘技术 然而 我在 R 中显示土耳其语字符时遇到了问题 这就是我所做的 docs lt VCorpus DirSource DIRECTORY e
  • Cordova / Phonegap:实时更新代码库

    我们将 Cordova 与 AngularJS 一起用于 iOS 和 Android 应用程序 iOS 的一大缺点是 Apple 的审核时间较长 在 Google 的 Playstore 中 您的应用程序几乎可以立即或在几个小时内可用 但苹
  • 可以信任第三方主机进行闭源/私有源代码管理吗? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 对于许多公司来说 他们项目的源代码对他们来说非常有价值 窃取源代码可能会造成非常高昂的代价 在本地网络上严格控制源代码是帮助保护源代码
  • npm 依赖冲突

    我正在使用 Vue 开发一个项目 我运行 Vue Cli 并添加了 Typescript 插件 我有几个弱点 当我跑步时npm audit fix它无法解决依赖冲突 npm ERR code ERESOLVE npm ERR ERESOLV
  • Airflow连接密码解密

    我想解密气流连接的密码 从连接表中获取值 有什么方法可以解密密码值 你可以做 from airflow hooks base hook import BaseHook connection BaseHook get connection c
  • Material-ui 芯片 - 拖放支持

    我想用材料 UI 芯片 https material ui com demos chips 在我的反应应用程序中 问题是我想通过拖放来移动芯片 不支持此功能material ui 是否有解决方法 扩展来使芯片可拖动 如果没有其他办法的话 我
  • Android 库项目作为 jar 文件进行分发,例如 google Analytics

    我见过this https stackoverflow com questions 5014128 create an android jar library for distribution问题 并且对创建一个我可以分发并可以在任何 An
  • 按天自动分区 - PostgreSQL

    我想做一个日常分区 我知道oracle是这样的 CREATE TABLE PUBLIC TEST ID NUMBER 38 0 NOT NULL ENABLE SOME FIELD VARCHAR2 20 BYTE NOT NULL ENA
  • Puppeteer:如何聆听特定的回应?

    我正在修补名为的无头 chrome 节点 apipuppeteer 我想知道如何听取特定的请求响应以及如何采取行动 我已经查看了事件requestfinish and response但它给了我all页面中已执行的请求 响应 我怎样才能实现
  • 意图在android中拍摄视频

    我需要仅使用前置摄像头从我的应用程序中拍摄视频 我正在使用意图来执行此操作 Intent intent new Intent MediaStore ACTION VIDEO CAPTURE intent putExtra MediaStor
  • 在 JBehave Web 中运行 FirefoxWebDriverProvider 时如何更改浏览器窗口的大小

    我们正在使用 JBehave Web 来驱动新项目的 selenium 测试套件 并且非常喜欢 JBehave 上提供的 Etsy com 示例 尤其是 Java Spring maven 原型 因为这适合我们的架构 到目前为止最大的问题是
  • 如何将表转储到控制台?

    我在显示包含嵌套表 n 深 的表的内容时遇到问题 我想通过 a 将它转储到标准输出或控制台print声明或一些快速而肮脏的东西 但我不知道如何 我正在寻找打印时得到的粗略等价物NSDictionary使用gdb 如果需求是 又快又脏 我发现
  • 无法导入名称“BlockBlobService”

    我收到以下错误 from azure storage blob import BlockBlobService ImportError cannot import name BlockBlobService 当尝试使用命令提示符运行我的 p
  • MongoDB $lookup 值返回数组

    我有一个包含多个项目的文档 需要从另一个集合中查找更多信息来填写数据 主要文件 id ObjectID 5a30ff41af58f911946b122e SalesItems SalesItemID 1139 Quantity 2 Amou
  • 为 C++ 多维类指针创建初始化和删除函数

    我创建了一个类并使用多维指针 如下所示 variable v mod v mod new variable 3 for int i 0 i lt 3 i v mod i new variable n 并在使用后删除指针 for int i
  • 如何更改最新发布的 Visual Studio Code 中的默认浏览器?

    正如标题所说 默认浏览器是IE 但我想使用其他浏览器 我该怎么办 您可以将 Windows 默认设置程序更改为您的浏览器 Windows 7的 控制面板 gt 程序 gt 设置默认程序
  • 从 DLL 导出静态 lib 符号

    我正在将 Facade DLL 用于静态库 Dll 提供了一个小型接口和资源管理 可以在多个 DLL 之间共享 Dll Header 确实公开了静态库中的内容 class DLL EXPORT MyDllClass public OneSt
  • Android 通知 FCM 与简单拉取

    对于我的 Android 应用程序 我需要从服务器接收一些通知 通知的时间要求并不严格 当用户打开应用程序时检查新通知就足够了 因此根本没有后台活动 我注意到 建议使用 FCM Firebase Cloud Messaging 之类的服务来