gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 10:59:16 28 4
gpt4 key购买 nike

当应用程序关闭时只有数据负载时,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,即使应用已关闭/终止。

但是在这个过程中遇到了一些问题。应用程序的行为会在开发和生产之间发生变化,并且会因设备提供商而异。

您首先要考虑的是,当应用程序处于开发阶段时,如果您强行关闭应用程序(kill-process),FirebaseMessagingService 将停止被触发。但这不会在生产中发生,所以如果您的 APK 已签名,请不要注意这一点。 link to source

第二,有些 Android 手机供应商自行管理流程。我们可以看到一个例子,比如华为手机及其“ protected 应用程序”,这让用户决定是否要保护应用程序。只有著名的应用程序在安装时受到保护,例如 WhatApp 或 Twitter...link to source

此时,您的 FirebaseMessagingService 应该会被触发,但是还有其他与系统 (OS) 管理的内存和进程相关的问题。由于处理 PushNotification 所花费的时间,您的 Service 可能会被取消。你可以找到很多方法来处理这个问题,但最好的方法是 Firebase JobDispatcher . link to source

关于android - 应用程序关闭/终止时 Android 中的 Firebase 推送通知问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48642423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com