android - Android 11 设备上的后台执行问题
问题描述
最近我发现大约 2 个月前发布了适用于三星设备的 Android 11 更新。
三星在此版本的操作系统中决定真正严格暂停在后台运行的应用程序/服务(更多信息)
因此,例如,当我正在开发的应用程序进入后台并且手机被锁定时,所有 BT 通信几乎都会立即暂停。当我解锁屏幕时,在那一刻,所有线程都不再挂起,继续执行。
OS因此完全忽略了前台服务机制。 官方文档
此外,当我尝试将我的应用程序添加到“永不休眠的应用程序”列表(Android 11 上电池优化白名单的替代方案)时 - 应用程序仍然被暂停 + 这种白名单机制似乎不稳定,即使我将我的应用程序添加到白名单,应用程序在几个小时后从列表中消失。
我的问题:
你在 Android 11 上也看到过类似的问题吗?什么有助于解决问题?
这只是三星特定的问题,甚至 Pixel 设备都做了同样的优化(忽略前台服务和白名单)?
感谢您的任何意见。
解决方案
可悲的是,这是一个巨大而常见的问题,我的回复可能不会为您解决它,但会给您更多的见解和可能的解决方法。看看dontkillmyapp.com。
在 Android 11 上,三星将默认阻止应用在后台运行,除非您将应用排除在电池优化之外。这与标准的 Android 进程管理策略有很大的不同。是的,这是一条很长的路要走!开发人员不能自动要求它,因为他们有可能因违反政策而被踢出 Play 商店。
此外,我强烈推荐Droidcon Berlin 2021的有趣演讲。
推荐阅读
- events - Netsuite文件柜中新文件的触发事件
- r - 将 R 中的数据集拆分为 3 个子集:低 25%、中 50% 和前 25%
- zapier - 从 Zapier 存储中获取所有数据
- c# - asp.net mvc核心依赖注入构造函数参数
- javascript - React JS- 对配置文件的数据进行编码并将其传递给 Header 以进行 api 调用
- ios - 编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式
- internet-explorer - 使用 Protractor 框架的 Internet Explorer 中不显示元素
- php - 如何将 xml 解析为 docx 文件中的字符串
- ruby - 根据用户输入循环创建
- python - 如何提取 CSV 文件的特定行