You said you didn’t want to use a translucent Activity, but that seems to be the best way to do this:
- In your Manifest, set the Activity theme to
Theme.Translucent.NoTitleBar
. - Don’t bother with a layout for your Activity, and don’t call
setContentView()
. - In your Activity’s
onCreate()
, start your Service withstartService()
. - Exit the Activity with
finish()
once you’ve started the Service.
In other words, your Activity doesn’t have to be visible; it can simply make sure your Service is running and then exit, which sounds like what you want.
I would highly recommend showing at least a Toast notification indicating to the user that you are launching the Service, or that it is already running. It is very bad user experience to have a launcher icon that appears to do nothing when you press it.