用户从最近播放应用时,我没有收到通知。我注意到某些特定设备出现了这种行为,例如我已经在nexus设备和HTC设备上对其进行了测试,但是当用户从最近的huawei和一些三星设备中刷出应用程序时它没有显示通知。我的意思是我没有得到onMessageReceived()
回调
经过一些研究后,我发现在这些设备中,当用户从最近一次刷卡时,强行停止应用程序(该过程完全被杀死)并且我没有收到任何通知。在华为,他们有受保护和不受保护的应用程序,如果我在设置中添加受保护列表中的应用程序,我会开始收到通知,因为在这种情况下,它不会强制停止应用程序。我相信三星他们与黑名单和白名单应用程序有相同的东西。
我还尝试了一些解决方案,例如重启服务o nTaskRemoved()
回调或制作应用START_STICKY
。我也试过WakefulBroadcastReceiver
,但没有什么对我有用。
所以我的问题是,即使它被强制停止,我怎样才能获得通知,就像从最近一次滑动应用程序时发生的那样。
答案 0 :(得分:0)
一个古老的问题,但是我认为了解华为具有一项称为“耗电量大的应用程序监控器”的功能非常重要。除非用户为其授予特殊权限,否则它将杀死长时间在后台运行的每个应用程序。 执行此操作的路径: 设置->安全和隐私->位置服务->最近的位置请求:您的应用名称->电池->取消选中耗电的提示,应用启动:手动管理:检查所有三个位置:自动启动,二次启动,在以下位置运行背景。
我不知道是否有办法以编程方式执行此操作。我认为最好的方法是创建一种帮助活动,并向用户解释如果应用程序无法运行该怎么办。