首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么android app在消息服务进程不存在的情况下仍能收到firebase通知?

Android App在消息服务进程不存在的情况下仍能收到Firebase通知的原因是因为Firebase Cloud Messaging(FCM)的工作原理。

FCM是一种跨平台的消息传递解决方案,它允许开发者向移动设备发送实时消息。当应用程序在后台或未运行时,FCM使用设备的系统通知机制来显示通知。以下是Android App在消息服务进程不存在的情况下仍能收到Firebase通知的具体原因:

  1. FCM的工作方式:FCM利用了Android系统的系统通知机制,即使应用程序的消息服务进程不存在,FCM仍然可以通过系统通知机制将通知显示给用户。这意味着即使应用程序没有在前台运行,用户仍然可以收到通知。
  2. 设备上的系统服务:Android设备上有一些系统服务,如Google Play服务,它们在后台运行并负责处理FCM消息。这些系统服务会接收到来自FCM服务器的消息,并负责将消息传递给应用程序的系统通知机制。
  3. 消息队列:即使应用程序的消息服务进程不存在,FCM服务器会将消息存储在设备上的消息队列中。当应用程序重新启动时,它会检查消息队列并将未处理的消息传递给应用程序。

总结起来,Android App在消息服务进程不存在的情况下仍能收到Firebase通知是因为FCM利用了Android系统的系统通知机制和设备上的系统服务来传递消息。这使得即使应用程序没有在前台运行,用户仍然可以收到通知。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android应用保活全攻略:30个实用技巧助你突破后台限制

Android系统中,保活(保持应用进程一直存活)就是为了让应用在后台持续运行,来实现某些特定功能,如实时消息推送、定位服务等。...使用Firebase Cloud Messaging(FCM) 对于需要实时消息推送应用,可以使用Firebase Cloud Messaging(FCM)服务。...FCM是一种跨平台消息推送服务,可以实现高效且可靠消息传递。通过使用FCM,你可以确保应用在后台时接收到实时消息,而无需采取过多保活手段。 18....当收到通知时,检查应用进程是否存活,如果已经被杀死,则重新启动应用。这种方法可以利用系统通知变化来触发应用启动,从而提高应用在后台存活率。...因此,实际开发中,应根据功能需求和用户体验来权衡保活策略,尽量遵循系统规范和限制。可能情况下,优先考虑使用系统推荐解决方案,如前台服务、JobScheduler等。

11820

集成推送那点事-友盟Mob-FlutterFCM

gradle 也就是 app gradle 添加对此依赖: // 友盟推送 apply from: 'UMeng_Push.gradle' 1.2 初始化友盟推送并设置通知栏点击动作 Application...SDK默认“23:00”到“7:00”之间收到通知消息时不响铃,不振动,不闪灯 pushAgent.setNoDisturbMode(23, 0, 7, 0) //...} 很多时候我们都希望,即使用户当前未使用 App,或者说当前 App 处于被杀死状态,后台推送消息依然想被前台接收。...若使用一键清理,应用channel进程被清除,将接收不到推送。通过接入托管弹窗功能,可有效防止以上情况,增加推送消息送达率。...3.3 FCM 消息处理 app build 中完善下依赖: // FCM implementation 'com.google.firebase:firebase-analytics:17.4.4

11.3K41

FCM---Android系统级推送---你还在用第三方推送?

Receiving a message:从GCM服务器接收消息Android程序。 Android端设置 一项可以扩展 FirebaseMessagingService 服务。...如果您希望在后台进行接收应用通知之外任何消息处理,则必须添加此服务。要在前台应用中接收通知、接收数据负载以及发送上游消息等,您必须扩展此服务。...通过替换 FirebaseMessagingService.onMessageReceived 方法,您可以根据收到消息执行操作,并获取消息数据: ?...这些服务器从一个应用服务器获取消息,并将其发送至设备上运行客户端应用。Google 为 HTTP 和 XMPP 提供连接服务器。 2、一台应用服务器,您必须在您环境中实现它。...而當 Android 裝置解除安裝您 app 時,Google GCM server 並不會立即通知 thrid party server,而是在下一次您發送訊息給該 Android 裝置時,Google

12.6K30

React Native推送通知:完整操作指南

原生平台特定通知服务(FCM/APNs) Android和iOS平台都提供了用于接收推送通知原生平台特定API 适用于安卓设备Firebase消息传递(FCM) 苹果推送通知服务(APNs)适用于...iOS设备 我们可以使用React Native Firebase库来Android上集成FCM,使用 push-notification-ios 库来iOS上集成APNs。...然后,我们将在服务器上数据库中存储该令牌,发送通知,并处理我们发送已接收到通知我们深入研究之前,我们将向一个已经开发项目添加推送通知。...请注意,在这里,我没有设置 FCM 就收到了我 Android 设备通知,因为我使用 Expo 应用进行开发。...使用Expo发送本地通知 某些情况下,开发者不需要远程服务器来发送通知。一个例子可以是音乐播放器,当一首歌曲正在播放时,应用需要显示一个通知某些情况下,开发者不需要远程服务器来发送通知

94110

安卓跟苹果推信技术怎么来实现发送短信技术多呢?《RCS》《IM》

Android和iOS平台上开发IM应用时,通常会采用云服务和客户端SDK方式实现消息推送。...例如:GCM/FCM (Google Firebase Cloud Messaging):对于Android设备,开发者可以使用Google提供Firebase Cloud Messaging服务,即使应用程序未运行或后台被清理时...,也能接收到推送通知。...跨平台IM应用会在服务器端处理不同操作系统之间兼容性问题,确保消息能够实时、准确地Android和iOS设备间传输。...因此,要实现跨平台短信功能,既可以借助于运营商层面的RCS技术标准化进程,也可以通过开发或集成第三方IM服务,搭建自己通信平台来实现消息互通。

51510

Service中是如何产生ANR

)发送消息,埋下定时炸弹 通讯员1号(binder_1)通知工地(service所在进程)通信员准备开始干活 通讯员3号(binder_3)收到任务后转交给包工头(main主线程),加入包工头任务队列...Service进程存在情况下调用realStartServicLocked函数,首先发送延时消息,接着通过ATP(Binder客户端)像app进程发送通信;如果进程不存在情况下去创建进程,后面会执行到新启进程通过...Service中涉及两对Binder是什么?是怎么完成通信app进程通知AMS所处systemserver进程通信是通过AMP(客户端)和AMS(服务端)这对Binder完成。...AMS所处systemserver进程通知app进程开始启动服务是通过ATP(客户端)和ATN(服务端)这对Binder完成。 AMP是AMN内部类而AMS继承自AMN。...2.为什么ATP是AMN中创建? 这种方式api26之后被弃用。 android api 26 ActivityManagerNative类被弃用。

77530

Service中是如何产生ANR

发送消息,埋下定时炸弹 通讯员1号(binder_1)通知工地(service所在进程)通信员准备开始干活 通讯员3号(binder_3)收到任务后转交给包工头(main主线程),加入包工头任务队列...Service进程存在情况下调用realStartServicLocked函数,首先发送延时消息,接着通过ATP(Binder客户端)像app进程发送通信;如果进程不存在情况下去创建进程,后面会执行到新启进程通过...Service中涉及两对Binder是什么?是怎么完成通信app进程通知AMS所处systemserver进程通信是通过AMP(客户端)和AMS(服务端)这对Binder完成。...AMS所处systemserver进程通知app进程开始启动服务是通过ATP(客户端)和ATN(服务端)这对Binder完成。 AMP是AMN内部类而AMS继承自AMN。...2.为什么ATP是AMN中创建? 这种方式api26之后被弃用。 android api 26 ActivityManagerNative类被弃用。

56810

Firebase In-App Messaging 应用内消息

什么是应用内消息 借助 Firebase In-App Messaging,可以向应用活跃用户发送有针对性、且符合情景消息来鼓励他们使用关键应用功能,从而吸引这些用户。...举例:玩游戏通过某个关卡时发送应用内消息促使他们完成重要应用内操作 应用内消息可以自定义,使其显示为卡片、横幅、模态窗口或图片,并设置触发器,使其合适时机出现 In-App Messaging 集成...iOS、Android、flutter 集成,详情可见 注意: 发送测试消息,为节省能耗,Firebase In-App Messaging 每天仅从服务器检索一次消息。...iOS、Android、flutter 相关处理,详情可见 In-App Messaging 用途 通过 Firebase 控制台可以修改消息样式、定位和推送时间 Firebase In-App Messaging...默认情况下,应用内消息会发送给安装该 APP 所有用户,这是因为 Firebase In-App Messaging SDK 与 APP ID 绑定,如果想让用户对其有更多选择权,则需要询问用户是否同意数据共享

32410

Android Firebase 服务简介

早在2014年,谷歌收购了Firebase,这主要是一种面向应用程序开发人员数据库。Firebase基本上向广大应用程序开发人员提供不同服务,比如存储、消息传递、通知和身份验证等服务。...今年I/O大会上,谷歌发表了新版Firebase,新Firebase整并Google既有的云端服务与工具,扩大支援更全面的功能,涵盖开发、成长与营收三阶段,并整合分析工具,其分析工具专为App所设计...)及远端配置(Remote Config)等后端服务,并提供Android测试实验室(Test Lab for Android),以及当机报告等管理App品质服务。...二、开发 云消息传递(Firebase Cloud Messaging) 可以通过后台服务向用户推送消息,对于即时通讯等用例,一条消息可以将最大 4KB 负载传送至客户端应用。...Firebase服务配置 首先为APP建立个云后端,登陆[FireBase官网]https://www.firebase.com/,注册账号,注册完后,会有这个提示。 ?

22.3K90

满足 Google Play 目标 API 等级 (targetSdkLevel) 要求

进行下一步前,请根据您 app 现有 API 等级阅览: 早于 Android 5.0 (API 等级 21) 早于 Android 6.0 (API 等级 23) 早于 Android 7.0 (...app,文章涵盖适用几个 Android 版本逐步变更。...Google Play 服务 SDK; ·· Firebase Cloud Messaging documentation 使用 Firebase Cloud Messaging 时,消息投递受限于后台执行限制...: - 应用运行时,使用 adb 让您测试设备进入 Doze 模式: ·· 测试任何触发 Firebase Cloud Messaging 消息用例; ·· 测试任何需要使用闹钟或者任务用例...; ·· 消除所有后台服务依赖; - 设置您应用进入待机模式: ·· 测试任何触发 Firebase Cloud Messaging 消息用例; ·· 测试任何需要使用闹钟用例;

8.6K30

了解iOS消息推送一文就够:史上最全iOS Push技术详解

,仅仅是让APP拥有一个统一系统通知方式而已,比如:闹钟定时提醒等; 3)离线/远程Push:这就是iOS程序员最熟悉APNs这一套东西了,它使得APP处于后台或者被kill情况下仍能收到网络通知...3.2 离线/远程push 离线push:当APP离线(kill掉进程、切到后台、锁屏)时,收到消息提醒,称为离线push。...这里最简单以大家常用手机QQ为例,当APP在后台、锁屏或者被kiil了进程时,收到消息: ?...相对,如果在后台或者杀进程情况下,点击收到离线push,那么就会调用,如果没有实现: ? 则会调用: ? 若实现了前者,就只调用前者。...直接卸载APP,虽然后台不知道APP被卸载了,仍然会对之前账号发送push,但是由于手机上没有对应APP,所以并不会收到push。 Q:为什么有时候全新安装APP就立马有红点角标?

21.1K30

FireBase 亲密接触

正常 App 都是属于网络应用,数据都是从服务器上获取。这就需要有专业后台开发人员开发后台业务服务器,然后为我们 App 提供数据。...Firebase Cloud Messaging(FCM):是一个跨平台Android、iOS 和网站解决方案,供我们免费可靠地发送和接收消息通知。...安排和发送消息,以便在最适当时间吸引合适用户。 App Indexing:通过 Google 搜索结果中显示相关应用内内容,帮助用户发现和再次使用您应用。...2)将 Firebase 添加到 Android 应用 新建项目之后,你会在左上角看到你项目名称,我新建项目是 Game2048。...Firebase 能应用到各个平台,例如 iOS、Web、Android平台。所以新建项目之后,我们需要指定要应用到哪个平台。 ? 填写你 App 相对于包名以及签名证书 ?

15.9K00

极光推送简单实现方法

, 我这里主要就是拿到服务器端发过来消息推送。...你可以尝试在你设备上安装我们Demo,以及你们App,打开友盟demo,不打开你们App,给你们App通知,是能收到。...2.2.1 极光原理也大概是通过服务保持和服务器端长连接,进行心跳检测,进行消息数据传递 解决方案 仍然分两种情况来说明这个问题: 3.1 目前来说友盟及极光等都没有解决这样问题,确实在用户不给权限情况下...3.3 小米、华为、oppo等手机上如果想让APP杀死后还收到推送的话,只能让用户手动操作,以下是极光看到一些步骤: 由于第三方 ROM 管理软件需要用户手动操作 小米【MIUI】 自启动管理:...禁止应用则通知栏不会有任何提醒 魅族【Flyme】 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启 通知栏推送:关闭应用通知收到消息不会有任何展示 省电管理

84430

Android P正式版即将到来:后台应用保活、消息推送真正噩梦

2、原先APP为什么要搞各种保活黑科技?...题外话:实际上,对于后台消息推送能力,Android原版系统早就内置了系统级推送服务(跟iOS上APNs服务是一个东西),它就是GCM服务(现在升级为FCM了),但众所周之原因,谷哥服务国内都是用不了...3、针对以往Android版本各种保活技术回顾 搞Android端IM和消息推送服务开发者都知道,Android P之前为了搞定客户投诉:“为什么微信能收到消息而你们IM却不能?”...(进程防杀篇)》 《应用保活终极总结(三):Android6.0及以上保活实践(被杀复活篇)》 《Android进程保活详解:一篇文章解决你所有疑问》 《Android消息推送总结:实现原理...建议开发者开启省电模式情况下测试应用,您可在 Settings > Battery Saver 内手动开启省电模式: ?

3.8K30

Activity启动流程

Launcher:Zygote进程孵化第一个App进程是Launcher。 1.init进程是什么? Android是基于linux系统,手机开机之后,linux内核进行加载。...Activity启动阶段 涉及到概念 进程Android系统为每个APP分配至少一个进程 IPC:跨进程通信,Android中采用Binder机制。...然后判断要启动Activity进程是否存在存在:发送消息LAUNCH_ACTIVITY给需要启动Activity主线程,执行handleLaunchActivity 不存在:通过socket向zygote...,如果存在,就直接通知这个进程进程中启动Activity;不存在的话,会调用Process.start创建一个新进程(执行在AMS进程) ActivityManagerService.activityPaused...H.handleMessage //ATHandler来处理接收到LAUNCH_ACTIVITY消息 ActivityThread.handleLaunchActivity ActivityThread.performLaunchActivity

80840

Activity启动流程

Launcher:Zygote进程孵化第一个App进程是Launcher。 1.init进程是什么? Android是基于linux系统,手机开机之后,linux内核进行加载。...Activity启动阶段 涉及到概念 进程Android系统为每个APP分配至少一个进程 IPC:跨进程通信,Android中采用Binder机制。...存在:发送消息LAUNCH_ACTIVITY给需要启动Activity主线程,执行handleLaunchActivity 不存在:通过socket向zygote请求创建进程。...,如果存在,就直接通知这个进程进程中启动Activity;不存在的话,会调用Process.start创建一个新进程(执行在AMS进程) ActivityManagerService.activityPaused...H.handleMessage //ATHandler来处理接收到LAUNCH_ACTIVITY消息 ActivityThread.handleLaunchActivity ActivityThread.performLaunchActivity

1.1K31

iOS Push技术

,仅仅是让APP拥有一个统一系统通知方式而已,比如:闹钟定时提醒等; 3)离线/远程Push:这就是iOS程序员最熟悉APNs这一套东西了,它使得APP处于后台或者被kill情况下仍能收到网络通知...这里以iOS Qzone为例,当APP在前台时,自己发说说被点赞了,收到在线push如下: 3.2 离线/远程push 离线push:当APP离线(kill掉进程、切到后台、锁屏)...这里最简单以大家常用手机QQ为例,当APP在后台、锁屏或者被kiil了进程时,收到消息: 一种特殊远程push:静默push 严格来说,静默push属于远程push一种特殊情况...是消息数量,我们可以看到这里设置为66: 4.3 处理本地push ( iOS10以前) 1)App没有启动情况下处理本地push 这种情况下,当点击通知时,会启动App...差别就是,如果app在前台是收到离线(远程)push,那么就会调用: 相对,如果在后台或者杀进程情况下,点击收到离线push,那么就会调用,如果没有实现: 则会调用:

1.8K30

开发小哥困惑:为何要用第三方推送?

对于 APNS 官方推送服务来说,它只允许我们推送一个系统通知,用户点击之后跳转到 App某个页面。但第三方推送服务则可以实现更多复杂操作,比如用户点击通知后直接播放。...回答你这个问题之前,我先问题几个问题。 iOS 设备上,我们 App 使用了第三方推送。我们把 App 进程杀掉后,给该用户发送一条推送消息,你猜该 iOS 设备能否收到?...小树摸摸脑袋想,我们使用第三方推送服务,那这个推送服务必然是跟随我们 App 进程。既然 App 进程都被杀掉了,那应该是接收不到推送了。...我们把 App 进程杀掉后,给该用户发送一条推送消息,你猜该 Android 设备能否收到? 小黑还是用原先方式发送了一条测试推送,这次旁边 Android 测试机却一点动静都没有。...小树这下可真的完全不知道所以然了,为什么 iOS 设备杀掉进程后能收到推送,而 Android 设备却不行? 小树急像热锅上蚂蚁,但小黑却悠然自得地拿起旁边咖啡喝了起来。

1.9K51

uni-app 如何实现消息推送功能?

技术架构 名词解释 名词 解释 通知消息 指定通知标题和内容后,由个推SDK自动处理系统通知栏中展示通知消息,同时响铃或震动提醒用户(响铃和震动受手机系统设置状态影响)。...在线推送 app 在前台打开运行时,通过个推渠道下发消息。 离线推送 app在后台、锁屏、进程关闭时,通过厂商渠道下发消息。...消息推送流程 开通 UniPush 推送服务 UniPush内部封装好了个推及主流厂商 SDK,使用前必须开通相关服务:点此查看如何开通UniPush推送服务。...Android包名或iOS Bundle ID必须与打包时配置一致,否则可能会导致无法收到推送消息。...= res.type //【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他没有提醒) //【APP在线】收到消息,不会触发系统消息

5.6K22
领券