gpt4 book ai didi

android - 如何解决错误: Not allowed to start service Intent : app is in background uid?

转载 作者:行者123 更新时间:2023-12-04 23:54:21 33 4
gpt4 key购买 nike

我有一项服务在启动完成事件时启动,但应用程序崩溃并显示上述错误消息。请帮助我如何在 Boot_Completed 的广播接收器事件上启动我的服务。

MyService.kt

class MyService : Service() {

override fun onCreate() {
Log.d(TAG, "onCreate")
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return START_STICKY
}

override fun onBind(intent: Intent?): IBinder? {
return null
}

override fun onDestroy() {
Log.d(TAG, "DO SOME STAFF")
}
}

MyBroadCaster.kt

class StartRelayServiceAtBootReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {

if (Intent.ACTION_BOOT_COMPLETED == intent.action) {
val serviceIntent = Intent(context, MyService::class.java)
context.startService(serviceIntent)
}
}
}

最佳答案

经过一番搜索,我得到了答案,我必须检查 SDK 版本,然后我可以将其作为前台服务或仅使用 starteService 启动;

class StartRelayServiceAtBootReceiver : BroadcastReceiver() {

override fun onReceive(context: Context, intent: Intent) {

if (Intent.ACTION_BOOT_COMPLETED == intent.action) {
val intent = Intent(context, MyService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(intent)
} else {
context.startService(intent)
}
Log.i("Autostart", "started")
}
}
}

关于android - 如何解决错误: Not allowed to start service Intent : app is in background uid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62066057/

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