
[英]Start camera from foreground service if START_ACTIVITIES_FROM_BACKGROUND granted for the app (Android 11+)
[英]Android start background service from foreground app
我似乎无法从前台应用程序启动后台服务的无崩溃实现。 当我的应用程序启动时,我使用 SignalR 实现启动后台服务,以实现一些 websocket 魔法。 我知道 Android O 限制,但我总是在应用程序进入前台时启动它。 这是我的干净解决方案:
class ActivityDelegate(private val activity: FragmentActivity) : LifecycleObserver {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity.lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun startSignalR() {
activity.startService(Intent(context, CoreSignalRService::class.java))
}
}
现在还有一些调整,同样不起作用:
lifecycle.currentState
.currentState 之前检查也无济于事尽管如此,每次我发布应用程序时,我都会时不时地收到错误Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=tld.example.something.CoreSignalRService }: app is in background uid UidRecord{98536ea}
我究竟做错了什么? 与这种生命周期方式相比,如何更好地获取应用程序的状态?
PS:不,我不想要前台服务。 我什至应该需要它,因为只有当应用程序处于活动状态(在前台)时我才需要我的服务。
PPS:我知道这个问题似乎与那些被问过几次的问题相似,但它们(我希望所有)在使用前台服务时是不同的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.