Android 在从最近的应用程序中刷卡时未收到推送通知

Android 在从最近的应用程序中刷卡时未收到推送通知,android,firebase,notifications,Android,Firebase,Notifications,当用户从最近的应用程序中刷卡时,我没有收到通知。我注意到某些特定设备会出现这种行为,例如,我在nexus设备和HTC设备上测试过,它工作正常,但当用户从最近在华为和一些三星设备上滑动应用程序时,它不会显示通知。我的意思是我没有得到onMessageReceived()回调 经过一些研究,我发现在这些设备中,当用户从最近的应用程序中刷卡时,它会强制停止应用程序(该过程已完全终止),而我不会收到任何通知。在华为,他们有受保护和未受保护的应用程序,如果我从设置中将应用程序添加到受保护列表中,我会收到通

当用户从最近的应用程序中刷卡时,我没有收到通知。我注意到某些特定设备会出现这种行为,例如,我在nexus设备和HTC设备上测试过,它工作正常,但当用户从最近在华为和一些三星设备上滑动应用程序时,它不会显示通知。我的意思是我没有得到
onMessageReceived()
回调

经过一些研究,我发现在这些设备中,当用户从最近的应用程序中刷卡时,它会强制停止应用程序(该过程已完全终止),而我不会收到任何通知。在华为,他们有受保护和未受保护的应用程序,如果我从设置中将应用程序添加到受保护列表中,我会收到通知,因为在这种情况下,它不会强制停止应用程序。我相信三星在黑名单和白名单应用程序上也有同样的功能

我也尝试过一些解决方案,比如重新启动服务o
nTaskRemoved()
callbacks或使你的应用程序
START\u粘性
。我也尝试过WakefulBroadcastReceiver,但没有任何效果


所以我的问题是,即使它被强制停止,我如何才能得到通知,就像从最近的应用程序中刷卡时发生的情况一样

这是一个老问题,但我认为重要的是要知道华为有一个叫做“电源密集型应用程序监视器”的功能。它会杀死所有在后台运行很长时间的应用程序,除非用户给予它特殊的权限。 执行此操作的路径: 设置->安全和隐私->位置服务->最近的位置请求:您的应用程序名称->电池->取消选中电源密集型提示,应用程序启动:手动管理:检查所有三个位置:自动启动、辅助启动、后台运行


我不知道是否有办法通过编程实现这一点。我认为最好的办法是创建一种帮助活动,并向用户解释如果应用程序无法正常工作该怎么做。

这是一个老问题,但我认为重要的是要知道华为有一种称为“电源密集型应用程序监视器”的功能“。它会杀死所有在后台长时间运行的应用程序,除非用户授予其特殊权限。 执行此操作的路径: 设置->安全和隐私->位置服务->最近的位置请求:您的应用程序名称->电池->取消选中电源密集型提示,应用程序启动:手动管理:检查所有三个位置:自动启动、辅助启动、后台运行

我不知道是否有一种方法可以通过编程实现这一点,我认为最好的方法是创建一种帮助活动,并向用户解释如果应用程序无法工作该怎么做