By default a service and activity, share the same process, the application context is a class that can share stuff between this 2 isolated classes, is that true? is it a good practice to use the application object as a shared global state holder?
By default a service and activity, share the same process, the application context is
Share
Why not. You application object can outlive server or activity so it is technically perfectly fine to act as ‘hub’ connecting all application elements. Of course you should back it up with persistent storage in case you whole app gets killed, but in general: “yes”.