【问题标题】:Oreo (API 26) Notifications not received when app in backgroundOreo (API 26) 应用程序在后台时未收到通知
【发布时间】:2019-04-03 14:03:57
【问题描述】:

我在实现 API 26 及更高版本的通知时遇到了一些困难。应用程序打开时通知到达,但应用程序处于后台或关闭时未收到通知。(我已根据文档包含通知渠道)

【问题讨论】:

  • 是高优先级推送吗?
  • 是的,我把它命名为“NotificationManager.IMPORTANCE_HIGH”
  • @Sagar 但是当应用程序关闭时,如果我是正确的,通知应该到达系统托盘,如果我没有错,点击定义的点击动作活动将打开

标签: android android-8.1-oreo android-push-notification


【解决方案1】:

谢谢大家,我找到了解决方案,显然要使用的 Firebase 消息传递的最低版本是 11.2.0,而针对 api 26,我使用的是 10,2.0

【讨论】:

  • 所有问题的最佳答案。
【解决方案2】:

基于documentation

FCM 尝试立即传递高优先级的消息,从而允许 FCM 服务在必要时唤醒睡眠设备并运行 一些有限的处理(包括非常有限的网络访问)。 高 优先级消息通常应该导致用户与 您的应用。 如果 FCM 检测到他们没有检测到的模式,则您的消息 可能会被取消优先级

您需要确保用户正在与应用交互,否则在打盹模式下通知不会立即发送。

【讨论】:

  • 但是在 api 25 及以下的通知中,当我使用 php 代码从服务器发出通知时,即使应用程序没有运行,通知也会立即传递。因此,如果应用程序处于后台/未运行,则在 api 26 及更高版本中不会传递通知?
  • 如果我将目标 api 从 26 更改为 25,那么它工作正常,但为了让应用程序发布到播放商店,所有应用程序必须在 2018 年 8 月之前定位到 api 26
  • @VinuPolly Altough level 26 对后台处理有更严格的限制,官方文档没有提到对通知的特殊处理。您只需要确保创建了正确的通知通道并且您正在运行任何后台服务。
  • 通知显示和传递取决于操作系统。只要确保你没有违反规则。
  • 通知频道已创建,因为它在通知设置中可见,频道名称可见,我可以编辑频道首选项。所以我猜频道创建是正确的。
猜你喜欢
  • 1970-01-01
  • 2019-02-27
  • 2020-12-23
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多