title: Android 9.0: Not allowed to start service: app is in background.. after onResume()
body: <p>I've got a music player which attempts to start a <code>Service</code> in <code>onResume()</code> of an <code>Activity</code>. I've removed a few lines for clarity, but the code is effectively:</p>
  
  <pre><code>@Override
  protected void onResume() {
      super.onResume();
  
      startService(new Intent(this, MusicService.class));
  }
  </code></pre>
  
  <p>According to the crash logs, this is throwing an Exception on some devices running Android P:</p>
  
  <pre><code>Caused by java.lang.IllegalStateException: Not allowed to start service Intent { cmp=another.music.player/com.simplecity.amp_library.playback.MusicService }: app is in background uid UidRecord{6a4a9c6 u0a143 TPSL bg:+3m25s199ms idle change:cached procs:1 seq(1283,1283,1283)}
         at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1577)
         at android.app.ContextImpl.startService(ContextImpl.java:1532)
         at android.content.ContextWrapper.startService(ContextWrapper.java:664)
         at android.content.ContextWrapper.startService(ContextWrapper.java:664)
         at com.simplecity.amp_library.utils.MusicServiceConnectionUtils.bindToService(SourceFile:36)
         at com.simplecity.amp_library.ui.activities.BaseActivity.bindService(SourceFile:129)
         at com.simplecity.amp_library.ui.activities.BaseActivity.onResume(SourceFile:96)
  </code></pre>
  
  <p>How is it possible that my app is in the background, immediately after <code>onResume()</code> (and <code>super.onResume()</code>) is called?</p>
  
  <p>This doesn't make any sense to me. Could this be a platform bug? All 3500+ users affected by this crash are on Android P.</p>