【发布时间】:2017-06-23 07:39:43
【问题描述】:
在我的应用程序中,我需要通过自定义呼叫类型屏幕通知用户,他必须在其中响应重要的业务决策,这非常重要,以至于他不介意这可能导致糟糕的用户体验。
我使用FCM数据消息,但是在6.0以下的设备中,当应用从当前应用列表中滑出时,不会触发onRecieve方法。
现在我正在使用一项服务,该服务启动广播侦听器来侦听接收到的消息,应用程序在其前景/背景时按预期工作,但是一旦它被刷出,服务就会随着应用程序被终止而停止,但在 6.0 以上的设备中app 不会被 swipe 杀死,这是我目前的观察结果。
基本上,我正在寻找一种即使您的应用被刷掉也可以运行的服务。我知道START_STICKY 的事情,它没有帮助。请帮帮我。
【问题讨论】:
-
在我的回答here中查看一些有用的细节
-
你在什么设备上测试?
-
@DavidWasser 当我在低于 6.0 的设备上测试它时,我没有收到任何东西,任何带有 START_STICKY 标志的服务都不会重新启动,即使是前台服务在被刷掉时也会被杀死。但高于 6.0 我看到了预期的行为。我正在使用6.0以上和以下的MI,Samsung,Lenovo
-
@AL。在发布这个问题之前我已经看到了你的答案,如果白名单部分是真的,这是否意味着普通开发人员无法以任何方式实现这一目标?我的应用适用于非常有针对性的客户,他们不介意为此给予任何许可。
-
在小米和一些联想设备上,您可能需要将您的应用添加到“受保护的应用”列表中。这些设备不允许应用程序在后台运行,除非它们在此受保护应用程序列表中。这是低端设备上的一种省电方法。这将阻止 Android 在您的服务被杀死后重新启动它。
标签: android firebase broadcastreceiver firebase-cloud-messaging