Fai*_*ikh 7 android android-service firebase firebase-cloud-messaging
当仅使用数据负载关闭应用程序时,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 JobDispatcher。链接到来源
归档时间: |
|
查看次数: |
8172 次 |
最近记录: |