开发者社区 问答 正文

移动推送Android SDK:SDK初始化成功,应用杀死后为什么收不到推送?



1. 问题


正确接入推送SDK,并且在应用中也初始化成功了,但是应用只要被杀死就收不到推送

2. 问题原因


SDK有应用保活以及拉起机制,但是推送SDK的保活能力受到ROM管控的影响。由于部分手机的ROM对应用自动拉起管控较严格,导致应用被杀死后无法接收到推送。

3.解决方案

  • SDK有自动保活机制,但是该机制不是立即生效的,应用被杀死后可以多观察一段之间(5分钟左右),看应用是否可以自启动
  • 如果您的设备是小米或者华为,建议配置小米和华为辅助通道以及小米托管弹窗,可以提升到达率。相关文档:小米/华为系统推送支持
  • 阿里云移动推送会持续努力优化应用保活能力,提升应用到达率。并在相关方案成熟后第一时间发布,建议关注推送SDK版本更新

展开
收起
猫饭先生 2017-10-23 14:15:07 1823 分享 版权
阿里云 AI 助理回答

针对您提到的问题,确实部分Android设备因为ROM的严格管理策略,可能会影响到应用被杀死后的推送接收能力。以下是一些建议和解决方案,帮助您优化推送通知的到达率:

  1. 配置小米/华为辅助通道

    • 小米和华为等厂商提供了自家的推送服务,这些服务通常具有更高的系统权限,能够在一定程度上绕过第三方应用保活限制。阿里云移动推送支持集成小米/华为辅助通道,以提高在这些设备上的推送到达率。请参考小米系统推送支持和华为系统推送支持文档进行配置。
  2. 小米托管弹窗

    • 对于小米设备,可以考虑启用小米托管弹窗功能,这可以在应用未启动的情况下直接展示推送消息给用户,进一步提升消息的可见性。具体配置方法请参考阿里云移动推送的相关文档。
  3. 关注SDK更新

    • 阿里云会持续优化移动推送SDK,包括增强应用保活机制和应对不同ROM策略的能力。建议定期检查并升级到最新版本的SDK,以便获取最新的功能和优化。
  4. 自定义保活策略

    • 虽然SDK自带保活机制,但根据应用的具体情况,您也可以尝试自定义一些保活策略,比如利用AlarmManager设置定时任务唤醒应用、使用前台服务(需谨慎,以免影响用户体验)等。但请注意,过度的自启动和后台活动可能会引起用户的不满或违反某些应用市场的政策。
  5. 用户教育

    • 在应用内引导用户将您的应用加入到手机的白名单或者电池优化的例外列表中,这样可以减少系统对应用后台运行的限制。

通过上述措施的综合应用,可以在很大程度上改善推送消息的送达情况,尤其是对于那些对第三方应用后台行为有严格限制的设备。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答