首页 文章

当应用程序在Oreo上处于前台时启动服务时出现IllegalStateException

提问于
浏览
1

Given: 我有一项服务,我在一项活动的 onStart() 开始,我在同一活动的 onStop() 停止服务 .

Known: 根据Android 8中的Android文档,存在背景限制,其中当应用程序处于后台并且将抛出 IllegalStateException 时无法启动服务 . (https://developer.android.com/about/versions/oreo/background

Inference: 但是此限制不会影响我的方案,因为我的服务仅在应用程序位于前台( onStart()onStop() 之间)时运行 .

Problem: 但是我看到Google控制台发生一次崩溃,在一台Android 8(Oreo)设备上为 startService() 线投掷 IllegalStateException . 知道为什么在应用程序处于前台时启动服务时抛出此异常的原因?为 startService() 抛出 IllegalStateException 时是否会出现其他情况?

1 回答

  • -1

    试试这个

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
          startforegroundservice(your_service);
    }else{
          startservice(your_service);
    }
    

相关问题