Android FCM在从后台删除应用时未收到通知

Raj*_*kar 8 android firebase firebase-cloud-messaging

这款手机是OnePlus3T.氧气OS构建为4.1.6.当应用程序在后台但在内存中处于前台时,应用程序会收到通知.但是,当应用程序不在内存中时,不会收到通知,即从内存中刷出.在具有Android OS版本4.2,5.1.1,6.0.1,7.1.1的其他设备上收到通知.Latage OS甚至应用程序不在内存中.

请提出一些建议.提前致谢.

Rah*_*var 21

我也遇到了同样的问题.

解决这个问题的两种方法

1-使用通知负载

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

使用data标签

 "data" {
  "title": "welcome",
  "description" :"to your app" ,
  "image" :"image_url",  
  "deeplink" :"deeplink",
   - -
  }
Run Code Online (Sandbox Code Playgroud)

它将触发FirebaseMessagingService onMessageReceived方法.当应用程序在后台时,它将无法在某些设备上运行.

运用 notification

 "notification" {
   "title":"title",
   "description" : "description",
   "click_action" :"activity to be open"
   ..
}
Run Code Online (Sandbox Code Playgroud)

这是处理android系统尝试并显示通知,onMessageReceived你的FirebaseMessagingService的这种情况下的方法将不会调用.甚至app会在后台显示.这样做的一个缺点是 - 你不能自定义通知,因为它是由Android系统处理的. 更多信息

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

当您发送通知使用data和应用程序被杀时,通知将不会显示.如果你观察到日志猫,你会看到

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

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

这就是大多数设备中的问题,如Vivo,Oppo,xiaomi,Asus,一加三.

启用应用程序自动启动的步骤非常基于设备制造商.

更新:

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

  • 在OnePlus 3和Android 8.0上,自动启动选项已删除,现在您可以转到设置>电池>电池优化>(左上角的三点菜单)高级优化>关闭高级优化. (8认同)

归档时间:

查看次数:

8312 次

最近记录:

6 年,10 月 前