android - startService() 抛出 java.lang.IllegalStateException

标签 android android-service android-8.0-oreo

从我的 Activity 的 onCreate()

我正在尝试通过以下代码启动服务:

Intent intent = new Intent();
intent.setClassName(SERVICE_PKG_NAME, SERVICE_NAME);
context.startService(intent); //context = MainActivity.this

但是,我收到以下异常:

java.lang.IllegalStateException: Not allowed to start service Intent (service-name) : app is in background

知道这可能是什么原因吗?现在坚持了几个小时。

最佳答案

对于需要从前台应用调用后台应用服务的情况,我们可以按照顺序:

  • 先调用bindService()
  • 由于绑定(bind)调用在 OnServiceConnected() 之后
  • 调用 StartService()。

关于android - startService() 抛出 java.lang.IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44310130/

相关文章:

android - "singleton"kotlin中模式方法的最佳方式

android - Gradle - 选择性模块编译(否则重用 jar)

android - RecyclerView 项目的高度和宽度相等

Android服务,需要一个持续运行的服务

Android:在方向更改时保留相机预览,而其他 View 可以旋转

java - Android:服务 START_STICKY 后 MediaPlayer 会发生什么?

android - 将信息从服务传递到 Activity (或 fragment )的最佳实践

android - 蓝牙设备未在 android oreo 中列出

android - 在 Android 8 中注册 BOOT_COMPLETED 接收器

安卓 O : PHONE_STATE broadcast limitation