leakcanary: Crash when starting services in background

Using a Pixel on Oreo (release not beta), I put my app in the background. A minute or two later, it crashed. LeakCanary 1.5.1

09-07 19:18:24.049 31787-31804/com.myapp:leakcanary E/AndroidRuntime: FATAL EXCEPTION: IntentService[HeapAnalyzerService]
Process: com.myapp:leakcanary, PID: 31787
java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.myapp/com.squareup.leakcanary.DisplayLeakService (has extras) }: app is in background uid UidRecord{74385af u0a385 CEM  bg:+3m4s764ms idle procs:2 seq(0,0,0)}
    at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1505)
    at android.app.ContextImpl.startService(ContextImpl.java:1461)
    at android.content.ContextWrapper.startService(ContextWrapper.java:644)
    at com.squareup.leakcanary.AbstractAnalysisResultService.sendResultToListener(AbstractAnalysisResultService.java:38)
    at com.squareup.leakcanary.internal.HeapAnalyzerService.onHandleIntent(HeapAnalyzerService.java:59)
    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:68)
    at android.os.Handler.dispatchMessage(Handler.java:105)
    at android.os.Looper.loop(Looper.java:164)
    at android.os.HandlerThread.run(HandlerThread.java:65)

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 35
  • Comments: 29 (21 by maintainers)

Commits related to this issue

Most upvoted comments

Yeah, that’s because you can’t start services in the background anymore on API 26.

@JakeWharton @jrodbx You’ll have to use ContextCompat.startForegroundService(...) and post a notification while processing the leak. I think that’s actually better UX anyway because I’m always like “Is LeakCanary doing anything? Why is it taking so long?” If you guys could have a progress bar showing the analysis progress, that would be really cool.

there is pull a request since December, could you please just merge it.

@SUPERCILEX @eygraber I just merged that fix to master, a new snapshot should be automatically published soon, please let us know if that fixes it.

I’m looking at it right now.

+1 to foreground service.

Everyone’s already doing it, so we might as well jump off the bridge too.

On Mon, Dec 18, 2017 at 10:17 AM shmuelr notifications@github.com wrote:

Yup, working on it right now. Just wanted to make sure its ok that LeakCanary depends on the Android Support Library

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/square/leakcanary/issues/846#issuecomment-352455491, or mute the thread https://github.com/notifications/unsubscribe-auth/AAEEEWhELivx3d94mhhphRaorfpKF6JXks5tBoIMgaJpZM4PQgqW .