当应用从后台移除时,Android FCM 不会收到通知



手机是OnePlus3T。氧气操作系统版本是 4.1.6。当应用在后台处于前台但在内存中时,应用会收到通知。但是当应用程序不在内存中时(即从内存中刷出(时不会收到通知。 通知在其他具有安卓操作系统版本 4.2、5.1.1、6.0.1、7.1.1 世系操作系统的设备上收到,即使应用程序不在内存中。

请提出一些建议。 提前谢谢。

我也遇到了同样的问题。

解决此问题的两种方法

1-使用通知有效负载

可以使用data标记或notification标记发送通知有效负载。

使用data标记

"data" {
"title": "welcome",
"description" :"to your app" ,
"image" :"image_url",  
"deeplink" :"deeplink",
- -
}

它将触发 FirebaseMessagingServiceonMessageReceived方法。 当应用程序在后台运行时,它在某些设备上不起作用。

使用notification

"notification" {
"title":"title",
"description" : "description",
"click_action" :"activity to be open"
..
}

这是处理Android系统尝试并显示通知,这种情况onMessageReceived您的FirebaseMessagingService的方法将不会调用.通知将显示,即使应用程序在后台。 这样做的一个缺点是 - 您无法自定义通知,因为它由 Android 系统处理。 更多信息

2-在设备设置中启用自动启动

当您使用data发送通知并且应用程序被终止时,将不会显示通知。 如果你观察日志猫,你会看到

W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=com.cabipool (has extras) }

可以解决 在一加 3 设置 -->应用 -->点击齿轮 -->最后一个选项 应用选择应用自动启动 -->找到你的应用 启用开关

这是大多数设备的问题,如Vivo,Oppo,小米,华硕,一加3。

启用应用程序自动启动的步骤非常取决于设备制造商。

更新:

一加 3 和 Android 8.0 自动启动选项已删除,因此现在您可以转到设置>电池>电池优化>(左上角的三个点菜单(高级优化>关闭高级优化。

这看起来像是特定设备的问题。

要进行检查,请在应用关闭时(重新启动后或滑动后(运行此命令

adb shell dumpsys package MY-PACKAGE | grep stopped

如果您可以阅读stopped=true则意味着设备制造商实施了非标准行为,包括在滑动时"强制停止"应用程序。

force-stopping与禁用应用非常相似,直到用户再次打开它。
当应用程序处于这种状态时,许多其他Android API将无法工作!(广播,警报。

如果这是问题所在,请联系制造商并要求他们修复设备!

相关内容

  • 没有找到相关文章

最新更新