V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
azh7138m
V2EX  ›  问与答

Android 体系有什么对标 APN 的推送吗?

  •  1
     
  •   azh7138m · 2019-07-29 17:47:38 +08:00 · 6431 次点击
    这是一个创建于 1974 天前的主题,其中的信息可能已经有所发展或是发生改变。

    首先,FCM 并不符合需求

    FCM does not process messages if an app is "killed" or force stopped. When a user kills an app it is an indication that the user does not want the app running so that app should not run till the user explicitly starts it again.

    https://github.com/firebase/quickstart-android/issues/368#issuecomment-343567506

    Starting Jan 2019, FCM will not deliver messages to apps which were put into background restriction by the user

    https://firebase.google.com/docs/cloud-messaging/android/receive

    看上去是个无解的操作,fcm 似乎只能推消息给被电池优化干掉的 app,并且推送会拉起 app 做处理,仍然非常耗电。

    这里有两个问题

    1. 对开发者来说,Android 体系(这里指有 GMS 的手机)内存在类似 APN 的推送手段吗?
    2. 对用户来说,想要更低的耗电下收到提醒,绿色守护捐赠版是不是最佳选择呢?
    第 1 条附言  ·  2019-07-29 18:32:11 +08:00
    仅作技术讨论

    app 被用户杀掉就会提示,failed to broadcast to stopped app,虽然现在电池优化已经很好用了,但是我仍然希望有一个更激进的休眠策略,同时还想要通知(

    MiPush 不是 Android 体系本来就有的东西,就不考虑了。
    第 2 条附言  ·  2019-07-29 18:35:27 +08:00
    “ app 被用户杀掉就会提示” 这里指的是使用 FCM 做推送的话
    17 条回复    2019-07-29 22:54:27 +08:00
    yukiww233
        1
    yukiww233  
       2019-07-29 17:58:07 +08:00
    1.FCM 在 killed 的情况下可以推送
    2.其实国内 mipush 做的最好把,但接入门槛低也带来了垃圾推送较多
    Buges
        2
    Buges  
       2019-07-29 18:03:15 +08:00 via Android
    不知道你怎么理解的,我这里 fcm 杀掉也可以推,并且也不怎么耗电,甚至不挂飞机都没问题。
    另外,99%的应用**不需要**在被杀掉后继续推送。
    fofoone
        3
    fofoone  
       2019-07-29 18:03:42 +08:00
    没有,最有效的办法是给手机厂商交钱,保活,保到达率,当然你日活跃体量不大那就无所谓了。
    iPhoneXI
        4
    iPhoneXI  
       2019-07-29 18:04:21 +08:00 via Android
    使用 fcm 的真不费电,比如 Twitter,telegram
    niubee1
        5
    niubee1  
       2019-07-29 18:09:31 +08:00
    fcm 国内能用啦?
    Love4Taylor
        6
    Love4Taylor  
       2019-07-29 18:12:26 +08:00
    FCM 就是.
    azh7138m
        7
    azh7138m  
    OP
       2019-07-29 18:14:41 +08:00
    @yukiww233
    1. 杀后台是可以,这个最多算提前了电池优化的触发,issue 里面描述的是 force stop 这种
    2. 只考虑 Android 体系的东西


    @Buges 见上 1


    @fofoone 仅做技术讨论


    @iPhoneXI 拉起 app 后非常费电,而且也不能保证电池优化能即时起效,有的 app 还是毒瘤


    @niubee1 一直可以用的吧
    azh7138m
        8
    azh7138m  
    OP
       2019-07-29 18:20:23 +08:00
    @Love4Taylor
    我用过 APN,app 是不需要活着的,就只是一个单纯的推送,也不会拉起 app,我贴的两个链接里面,何种情况不会收到推送已经说的很清楚了

    app 被用户杀掉就会提示
    failed to broadcast to stopped app


    @Livid 话说,为啥不能添加附言,是问与答的限制吗?
    leafleave
        9
    leafleave  
       2019-07-29 18:21:30 +08:00
    iOS 通知也可以拉起应用,不过加了限制只能唤醒 30 秒
    TobiahShaw
        10
    TobiahShaw  
       2019-07-29 18:24:25 +08:00
    可以考虑小米 push,非 MIUI 也可用
    mohoumk2
        11
    mohoumk2  
       2019-07-29 18:31:17 +08:00 via Android
    我觉得对用户来说,除了通讯类软件…完全没有给推送东西权限的必要,推送的也都是垃圾信息
    所以还是直接干掉吧
    Buges
        12
    Buges  
       2019-07-29 18:41:45 +08:00 via Android
    @azh7138m 那应该不怪 Android。本来需要收推送的后台应该是“ cached background processe ”状态,不算完全被杀但也不算保活,不耗电。但国内应用你懂的,各种滥用,不得不彻底杀死。
    murmur
        13
    murmur  
       2019-07-29 18:44:20 +08:00
    联盟推送都可以,安卓为了舒服和省电都是要关推送的
    codehz
        14
    codehz  
       2019-07-29 18:58:41 +08:00
    force stop 的话,必须用户手动点,或者辅助功能点击,或者用特权接口才能关闭。。正常情况下应用后台被杀是不会进入这个停止状态的)即使所有进程都被干掉了。。
    这个问题的原因是 Force Stop 阻止了任何后台唤醒操作,因此 FCM 也无法拉起应用并显示通知。。。
    azh7138m
        15
    azh7138m  
    OP
       2019-07-29 19:28:51 +08:00
    @codehz
    我要怎么介入电池优化,让他即时休眠一个 app 呢?

    我感觉哪里都能看到老哥 =。=
    Livid
        16
    Livid  
    MOD
       2019-07-29 20:03:03 +08:00   ❤️ 1
    @azh7138m 主题创建 30 分钟之后才能创建附言。
    Alozxy
        17
    Alozxy  
       2019-07-29 22:54:27 +08:00 via Android
    看一下 fcm 的文档就知道,有数据推送和消息推送两种,分高优先级和低优先级。如果是消息推送的话走的是系统通知,不会拉起 app,这种方式很省电。但是如果需要 app 处理收到的数据,自然需要把 app 拉起。但是对国内流氓来说......肯定无脑选择能拉起 app 的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   998 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 20:33 · PVG 04:33 · LAX 12:33 · JFK 15:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.