【问题标题】:Push notification doesn't show or gets disappeared right away [CodenameOne]推送通知不显示或立即消失 [CodenameOne]
【发布时间】:2021-06-01 11:45:48
【问题描述】:

我有两台 Android 设备,Android 7.0 和 Android 8.1.0,我正在尝试使用 CodenameOne 向它们发送推送通知。 当我发送推送通知(类型 99)时,它会正确显示在 Android 8 设备上。 但是,Android 7.0 设备似乎将所有推送通知收集在托盘中,并且仅短暂显示 - 不到一秒钟或根本不显示。我可以看到只有在设备处于睡眠状态(屏幕为黑色)时才收到通知。但是我解锁手机后,通知就不再显示了。

另外,另一个可能相关的问题:在我的push(String value) 方法中,我实现了带有通知正文消息的 ToastBar,以防显示最小化。因此,在我在 Android 7 设备中收到推送通知然后打开应用程序后(即使在收到推送时它已被最小化),我可以看到 ToastBar(或者其中很多,如果推送很少。这不应该发生) .

用于接收推送的 Android 日志在两个版本中似乎都很好。它们看起来像这样:

2021-03-08 12:14:52.308 16422-21684/com.company.app I/System.out: Message received {messageType=3, category=reminder, message=Reminder !;{'id':'251'} }

2021-03-08 12:14:52.308 16422-21684/com.company.app I/System.out: Push message received: Reminder !;{'id':'251'}

2021-03-08 12:14:52.308 16422-21684/com.company.app I/System.out: Push type: 3

2021-03-08 12:14:52.30816422-21684/com.company.app I/System.out: Is running: false

但是,我注意到 Android 7.0 手机也有这个:

2021-03-08 11:46:07.686 1548-1548/? V/NotificationService: pkg=com.company.app canInterrupt=false intercept=true

【问题讨论】:

  • push(String) 将始终被调用(即使对于后台推送消息)。您需要明确防止显示您不想显示的消息。当您说简短地展示它时,您的意思是从托盘中取出?原生安卓秀?这与其他应用程序的行为不同吗?邮箱?
  • 通知在托盘中短暂显示,不到一秒钟,然后消失。有时虽然它根本不在那里显示。是的,我相信这是一个原生的 Android 显示托盘。使用com.codename1.push 中的push() 实现通知。仅此应用会发生这种情况,所有其他通知都可以正常工作。
  • 另外,我刚刚注意到。当应用程序被终止时,7.0 设备会正确接收并显示通知。它仅在应用程序在后台运行时短暂显示。
  • 我想你的意思是当应用程序在前台时?当应用程序运行时,我们从托盘中删除推送通知,以使行为与以这种方式运行的 iOS 一致。我们的假设是应用 UI 位于前台,因此您可以在应用中显示 UI 通知。
  • @ShaiAlmog 前台你的意思是当应用程序显示在屏幕上时?不,该应用程序不显示,它只是在后台运行,可以在当前运行的应用程序列表中找到(如此屏幕截图中的 PlayStore 应用程序imgur.com/OnIHoOE)。所以在我的不同设备上,即使应用程序被列为正在运行,我也会收到推送。但不是在这个 Android 7.0 上。

标签: android push-notification codenameone


【解决方案1】:

Bug 解决了我从 codenameone_settings.properties 的构建提示中删除 android.background_push_handling=true

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多