Android 8.0:java.lang.IllegalStateException:不允许启动服务意图

phnmnn:

在启动应用程序时,应用程序启动应执行某些网络任务的服务。定位到API级别26后,我的应用程序无法在后台在Android 8.0上启动服务。

引起原因:java.lang.IllegalStateException:不允许启动服务意图{cmp = my.app.tt / com.my.service}:应用程序在后台uid UidRecord {90372b1 u0a136 CEM空闲过程:1 seq(0,0 ,0)}

据我了解,它涉及:后台执行限制

如果针对Android 8.0的应用尝试在不允许创建后台服务的情况下尝试使用该方法,则startService()方法现在将引发IllegalStateException。

在不允许的情况下 ”-实际上是什么意思?以及如何解决。我不想将服务设置为“前台”

MuratKaragöz:

允许的情况是一个临时白名单,其中后台服务的行为与Android O之前的行为相同。

在某些情况下,后台应用会被放置在临时白名单中几分钟。当应用程序进入白名单时,它可以不受限制地启动服务,并且其后台服务可以运行。当应用处理用户可见的任务时,该应用将被列入白名单,例如:

  • 处理高优先级的Firebase云消息(FCM)消息。
  • 接收广播,例如SMS / MMS消息。
  • 从通知中执行PendingIntent。
  • 在VPN应用提升自身为前台之前启动VpnService。

来源:https//developer.android.com/about/versions/oreo/background.html

因此,换句话说,如果您的后台服务不满足白名单要求,则必须使用新的JobScheduler它与后台服务基本相同,但是它会定期调用,而不是在后台连续运行。

如果您使用的是IntentService,则可以更改为JobIntentService。请参阅下面的 @kosev 答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.IllegalStateException:标准目录没有一个:/存储/仿真的/ 0 /下载/上的Android 10

不允许启动服务意向 - Android的奥利奥

FCM致命异常:java.lang.IllegalStateException不允许启动服务意图

Android 8:不允许使用明文HTTP流量

java.lang.UnsupportedOperationException:出于安全原因,特权进程中不允许使用WebView

Ionic Android构建:java.lang.IllegalStateException:未指定buildToolsVersion

onRequestPermissionsResult()中的Android java.lang.IllegalStateException

在Android上发送电子邮件的“ java.lang.SecurityException:权限拒绝:启动意图”

不允许后台执行。Android O待定意图

GcmBroadcastReceiver IllegalStateException:不允许启动服务意图

带有ViewPager的Android java.lang.IllegalStateException

java.lang.IllegalStateException:尝试运行RingtoneService时不允许启动服务意图

Android:Espresso:按意图进行的初始化活动-java.lang.RuntimeException:无法启动活动

无法启动活动ComponentInfo {className} java.lang.IllegalStateException:找不到颜色!(Android JetPack撰写)

Android Kotlin:java.lang.IllegalStateException

java.lang.IllegalStateException / java.lang.ClassDefNotFoundError将外部Jar添加到android项目

android java.lang.IllegalStateException:无法从CursorWindow读取第0行,第0行

Android中的java.lang.IllegalStateException

SecurityException:不允许启动服务意图{act = com.google.android.c2dm.intent.REGISTER pkg = com.google.android.gms(有其他功能)}

java.lang.SecurityException:权限拒绝:不允许仅在KitKat上发送广播android.intent.action.MEDIA_MOUNTED

为什么Java 8中的lambda不允许匿名类不允许成员变量的前向引用?

Java / Android不允许在Intent声明中将“ this”作为参数

Android服务java.lang.IndexOutOfBoundsException

为什么java.lang.Exception不允许在构造函数外部设置消息?

java.lang.SecurityException:权限拒绝:启动意图 {act=android.settings.USAGE_ACCESS_SETTINGS}

Android 片段 alertDialog java.lang.IllegalStateException

java.lang.IndexOutOfBoundsException:索引:0,大小:0 Java 8

Android:不允许后台执行:接收意图

在 android (Java 8) 上運行 TensorFlow Lite 時出現 java.lang.NoSuchMethodError