gpt4 book ai didi

android-8.0-oreo - 由于 bg 限制,不允许 Service.startForeground()

转载 作者:行者123 更新时间:2023-12-01 05:51:45 27 4
gpt4 key购买 nike

我正在尝试运行 foregroundService在 android 8 及更高版本中。它成功启动,并且当应用程序处于前台或设备未空闲时显示前台粘性通知。问题是一旦设备空闲,Android 决定终止显示此日志的服务

Stopping service due to app idle

根据文档,只要有用户服务可见的通知就应该很少被杀死:(无论如何,我设置了一个警报,每 15 分钟触发一次,如果它没有运行但它无法启动前台服务日志记录,则尝试再次启动该服务信息
Service.startForeground() not allowed due to bg restriction

在 google 上进行一些搜索:我认为这与 android AppOps 管理有关。显然有权限 RUN_ANY_IN_BACKGROUND那应该是 allow但它实际上是 ignore就我而言。我检查使用
adb shell cmd get package.name RUN_ANY_IN_BACKGROUND

只是为了测试,我将其设置为 allow再次手动。但是在应用程序空闲一段时间后,操作系统将其再次设置为忽略并再次停止服务。

无论如何,我可以检查我是否违反了一些强制执行 RUN_ANY_IN_BACKGROUND 的限制要忽略的标志 ?

对于某些情况:该服务假设检测用户的 sleep ,因此它必须从用户的 sleep 时间到醒来时间运行一整夜。
我通过调用 context.startForegroundService(intent) 开始服务然后在 onStartCommand我调用的方法 startForeground通过通知。 onStartCommand方法总是返回 START_REDELIVER_INTENT持续的。

最佳答案

我通过以下操作解决了这个问题:
设置 -> 应用和通知 -> 我的应用 -> 电池 -> 后台限制

在对话框片段中选择删除以删除背景限制(如果已启用)。

关于android-8.0-oreo - 由于 bg 限制,不允许 Service.startForeground(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53368131/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com