A proper way to Debug a Service in Android Studio?

There is a button next to "run in debug" (In version 1.1.0 looks like this: A phone icon with a small bug overlaid) to attach the debugger to a running android process. Here is the official info (for IntelliJ, but it's the same in Android Studio): http://blog.jetbrains.com/idea/2011/05/new-in-105-attach-debugger-to-a-running-android-process/


(updated in August 2020: the button in Android Studio 4.0 has the same icon)

So it is waiting for the debugger to attach, once the service has started, but you still need to tell Android Studio to attach to the process (it doesn't happen automatically).

Press the button to attach to process (see screenshot for Android Studio 3.6 .. it is the 3rd button to the right from the debug button). You will be given a choice of processes to attach to, one of which would be the background service's separate process.

this is the button, with background highlight

The timing of when you press the button to attach to the process, needs to be after the background service has started (while it is waiting at android.os.Debug.waitForDebugger();), otherwise the process would not exist and you would not be able to select it.