应用程序关闭/终止时 Android 中的 Firebase 推送通知问题

2023-11-21

当应用程序仅包含数据负载关闭时,Firebase 推送在某些设备上不起作用。请参阅此线程:https://github.com/firebase/quickstart-android/issues/41

我知道当应用程序被滑动杀死时,一些 OEM 会杀死该应用程序的所有服务,这些服务直接影响 FirebbaseMessagingService,并且由于此 onMessageReceived() 方法从未被调用。我也尝试过使用高优先级 FCM,但遗憾的是没有成功。以下是我遇到问题的手机:OnePlus、联想、华为。

目前,我正在使用 OnePlus 5 进行测试,当我将电池设置更改为“不优化”时,推送通知开始工作。

我杀死了应用程序并运行dumpsys package MY-PACKAGE | grep stopped命令,我发现应用程序没有停止。表明stopped=false。这意味着应用程序正在运行。

推送通知的概念是在应用程序关闭时通知用户,但目前我们无法做到。

有什么建议我该如何解决这个问题吗?


FirebaseMessagingService可以收到PushNotification即使应用程序被关闭/杀死。

但其中也存在一些问题。由于设备提供商的原因,应用程序的行为在开发和生产之间会发生变化。

您必须考虑的第一件事是当应用程序正在开发时,如果您强制关闭应用程序(终止进程),FirebaseMessagingService停止被触发。但这种情况在生产中不会发生,因此如果您的 APK 已签名,则无需意识到这一点。链接到来源

第二件事是,有一些 Android 手机提供商自行管理流程。我们可以看到像华为手机及其“受保护的应用程序”这样的例子,它让用户决定是否要保护该应用程序。只有著名的应用程序在安装时才会受到保护,例如 WhatApp 或 Twitter...链接到来源

此时,您的FirebaseMessagingService应该被触发,但是还存在与系统(OS)管理的内存和进程相关的其他问题。你的Service可以取消,因为它花费了时间来处理PushNotification。你可以找到很多方法来解决这个问题,但最好的方法是Firebase 作业调度程序. 链接到来源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序关闭/终止时 Android 中的 Firebase 推送通知问题 的相关文章

随机推荐