目前,我的SDK使用Service来处理此工作。但是从Android 12开始,不支持从后台启动服务。。
我正在尝试从后台启动服务,下面的异常会抛出。
ForegroundServiceStartNotAllowedException: Service.startForeground() not allowed due to mAllowStartForeground false
我该如何使用WorkManager来解决这个问题?我的所有处理都由Service类完成,我该如何将Service对象传递给Worker类并在Worker类中启动此作业。
实际上,我的项目基于信标技术。信标信号用于向用户显示不同的推荐内容。
在我的当前实现中,如果应用程序被用户杀死,并且接受前台服务,则SDK将在后台运行。检测信标并提供适当的操作。
我的实现是,如果应用程序使用前台服务“关闭”初始化我的SDK,然后稍后,当应用程序处于后台并尝试从后台启动前台服务时,会引发此异常。前台服务相关的决策由服务器端API进行。我定期检查服务器端值是否更改,如果值更改,则在SDK中反映更改的操作。