【发布时间】:2018-08-18 11:33:15
【问题描述】:
我看到一些应用程序,如 Messenger、Zalo 不需要通知,但仍然在后台运行。怎么做。我使用的设备是小米 A1(Android 8)和诺基亚 6.1(Android 8.1)。非常感谢任何解决方案指南
【问题讨论】:
标签: android
我看到一些应用程序,如 Messenger、Zalo 不需要通知,但仍然在后台运行。怎么做。我使用的设备是小米 A1(Android 8)和诺基亚 6.1(Android 8.1)。非常感谢任何解决方案指南
【问题讨论】:
标签: android
从 Android 6.0(API 级别 23)开始,Android 引入了两项延长用户电池寿命的省电功能:打盹和应用待机。当手机处于打盹模式时,这两个功能会对您的后台处理实施许多限制。您应该在以下链接中阅读有关打瞌睡和应用待机的信息
https://developer.android.com/training/monitoring-device-state/doze-standby
现在,关于您的用例,您希望即使在应用未运行时也能接收消息和来电。对于这个用例,Android 在 GoogleIO2016 中宣布了高优先级 FCM 消息。它们是高优先级的推送消息,它授予应用程序临时唤醒锁和网络访问权限,与设备的打盹状态或应用程序恰好处于应用程序待机状态无关。这允许应用程序对消息做出反应,并以它想要的任何方式通知用户有关即时消息或来电的信息。
有关您的用例的更多信息,请关注以下 08:30 至 10:30 的 GoogleIO2016 视频 https://www.youtube.com/watch?v=VC2Hlb22mZM&t=505s
并在此答案的第一个链接上阅读有关此用例的信息。
【讨论】:
您可以使用 Service 类。
请参考我在上面找到的这个链接:How to make an android app to always run in background?
如果我有任何错误,请纠正我! 希望对你有帮助。
【讨论】:
不,当应用程序不在前台时,如果不显示前台通知 API >= Oreo,您将无法启动服务以在后台工作。我建议您使用 WorkManager,这是一个方便的后台任务库,无需前台通知。在那里查看:Work manager
【讨论】:
没有。对于 Oreo 的 API 级别(即:26)或更高级别,当应用程序不在前台而不显示前台通知时,您无法启动服务以在后台工作。一种替代方法是使用 WorkManager,这是一个方便的后台任务库,不需要前台通知。在这里查看:WorkManager
不过,WorkManager 的警告是,它不允许您更频繁地执行任务,而不是每 15 分钟一次。因此,如果您需要每隔 30 秒、5 分钟等运行一些后台任务,则需要探索其他选项。
【讨论】: