Your solution looks like a good solution to me!
The other way you could do it is to call a Sub from the Service. This way you would only be running the routine when the LocationChange event was triggered.
To do this you would need to know which Activity is running either by storing and updating a Global variable or by asking the system...
https://www.b4x.com/android/forum/threads/get-the-current-activity-from-a-code-module.68666/
I think that maybe your solution is the simplest, which is normally my preferred choice. Keep it simple so it's easier to debug.