使用 FireBase 推送(FCM), Android 端 APP 杀死后不能收到推送通知。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mtt2011pony
V2EX    问与答

使用 FireBase 推送(FCM), Android 端 APP 杀死后不能收到推送通知。

a href="Javascript:" Onclick="upVoteTopic(604800);" class="vote">
  •  
  •   mtt2011pony 2019-09-27 14:13:27 +08:00 11297 次点击
    这是一个创建于 2281 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于做了一款海外的 APP,推送选用了 Google 自己的推送服务 GCM,它的原理与 Apple 推送通知服务类似,消息从应用服务器被发送到统一服务器,然后再发送到设备,这样应用就无需常驻后台,因此资源占用便能很好地得到控制,有利于系统的流畅和续航。

    经过研究,选用了 FCM。是 2014 年 Google 收购 Firebase 后,将 GCM 改名为「 Firebase 云消息传递( Firebase Cloud Messaging,即 FCM ) 」,它继承了 GCM 的核心基础架构,并带有新的 SDK,简化了云消息传递的开发工作。

    项目使用 Flutter 开发,顺利接入后,苹果端 APP 应用退到后台或是杀掉 APP 都能收到通知,但是, Android 端 APP,只有退到后台运行能收到通知,APP 如果被 Killed 就收不到通知。不是统一推送,不需要 APP 后台常驻吗?这样的推送跟国内的极光推送之类的有什么区别呢,需要后台一直运行推送服务才能收到?

    目前问题分析,Android 测试手机是三星 S7 和华为 mate 9,测试时,一定要 Google Servicel 开启才能使用 FCM,所以排除是国内定制系统对 Google service 有一定限制问题,人在中国用的中国版手机,真不知道国外推送什么情况,目前下载了 Twitter 测试下,貌似不打开 APP 后台运行,也收不到推送。

    请大家对推送问题讨论下 google 推送或者 firebase 推送情况吧。

    9 条回复    2020-05-22 14:25:35 +08:00
    tenpage
        1
    tenpage  
       2019-10-24 12:31:06 +08:00
    遇到了同样的问题,这样看来 FCM 也没什么优势。清理任务列表的时候,国外手机不会“强制停止”,国内手机大多会”强制停止“,所谓的深度清理。
    delpo
        2
    delpo  
       2019-10-27 15:22:08 +08:00   1
    因为按照安卓系统的逻辑,如果一个 app 被"force stop",那么就不应该被任何行为唤醒,那么自然也就不应该收到通知.
    事实上大部份国外应用,按 home 键或者划掉,都不会后台常驻,而是留下缓存进程,这样就能收到 fcm 通知.
    所以归根结底还是国内环境给你的错觉.
    mtt2011pony
        3
    mtt2011pony  
    OP
       2019-10-28 13:24:27 +08:00
    @delpo soga 感谢感谢
    mtt2011pony
        4
    mtt2011pony  
    OP
       2019-10-28 13:26:39 +08:00
    @tenpage 就是 FCM 在国内没有优势 感谢 了解了解
    yyyymmmmxxxx
        5
    yyyymmmmxxxx  
       2019-10-30 14:15:02 +08:00
    @mtt2011pony 我也是做一款海外的 APP,集成的 FCM,不过在国内华为手机上 kill 到进程收不到通知,不知道在国外会怎么样
    mtt2011pony
        6
    mtt2011pony  
    OP
       2019-10-30 22:59:43 +08:00
    @yyyymmmmxxxx 你是华为哪款手机,我测试过国内华为 mate 9、三星 S7 能收到,不确定国外具体怎么样,感觉国外 google 服务应该是更开放的。
    mtt2011pony
        7
    mtt2011pony  
    OP
       2019-10-30 23:01:39 +08:00
    @yyyymmmmxxxx sorry 没看清楚,kill 掉进程收不到 ,退到后台运行能收到
    bclerdx
        8
    bclerdx  
       2020-04-28 16:08:50 +08:00 via Android
    @delpo 那么后台常驻和缓存进程有什么区别么?
    coderljx
        9
    coderljx  
       2020-05-22 14:25:35 +08:00
    我也遇到了和楼主同样的问题。
    我维护一款针对新加坡用户的 app,有个业务是需要每天固定有 5 个时间段提醒用户,类似于闹钟(但是每天时间不一样)。
    选取的是 onesignal 第三方平台,经常收到用户说无法收到推送的问题,很恼火
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1027 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 18:42 PVG 02:42 LAX 10:42 JFK 13:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86