startForegroundService() not allowed due to mAllowStartForeground false
`
最近Google也是推出了Android12,在写项目的时候也是发现了一个适配Android12需要注意的问题
以 Android 12 为目标平台的应用在后台运行时无法再启动前台服务,但一些特殊情况除外。如果应用在后台运行时尝试启动前台服务,并且前台服务不符合任何特殊情况,则系统会抛出 ForegroundServiceStartNotAllowedException
官方也是给了前台服务的推荐替代方案:WorkManager
从 WorkManager 2.7.0 开始,您的应用可以调用 setExpedited() 来声明 Worker 应使用加急作业。这一新 API 在 Android 12 上运行时使用加急作业,该 API 在早期 Android 版本中使用前台服务来提供向后兼容性。
以下代码段展示了关于如何使用 setExpedited() 方法的示例:
OneTimeWorkRequestBuilder<T>().apply