I have some confusion with android service
As per the documentation
It will keep on running in the background on main thread . It doesn’t run in a different thread.
My doubt is what is the meaning of keep on running in background . Will it execute the onStartCommand() again and again. I am really very confused with this line (Keep on running in background )
if it will not execute onStartCommand again and again then what is the benefit of Keep on running and if it executes onStartCommand again and again then it is using cpu more and more
Line which confused me is highlighted in the image please have a look

As already noted in a comment, for your particular purpose (monitoring a setting, here: volume), you can follow a non-polling approach which is described e.g. here: Is there a broadcast action for volume changes?
In general, on a modern (though not perfect) environment like Android, there’s almost never a reason to actively poll something, because nobody could afford wasting so much resources, and also, you’ll always risk to miss events, so you’d be tempted to poll more frequently — this is a race which your implementation is always going to lose.
Once more, the following statements are plain wrong:
A
Serviceruns on your app’s main/UI thread. If you think this is the case then you need to read about theandroid:processattribute of the manifest’sactivitytag. Also. even if you do not let your service run in a separate process, the phrase a service runs on your app’s main/UI thread suggests that your main/UI thread gets blocked by your service. Of course, hopefully nobody leaves iot art that; it’s easy to just process the service’s events on your app’s main/UI thread and delegate the tasks to worker threads, which is what every sane implementation should do.With
START_STICKY, you can ensure that your service will always be running after it got started. Of course, this is naive and means that whoever claims this has not completely understood the meaning of this flag in conjunction with the description of the process lifecylce for Android Services. Quote:Note this means that most of the time your service is running, it may be killed by the system if it is under heavy memory pressure.If you read the section, you will know that Android is going to kill the process with your running service at any time without notice if it needs memory for another task with higher priority and your service is not related to an app which the user currently looks at. In other words, if the system is low on memory and the user opens a spreadsheet which requires most of the system’s memory, then the background internet radio media player and all fancy stuff is likely to get killed, period.