Hola EcoGus:
He vuelto a mirar tu código, y sigues con starter, ya te comenté en el otro post los problemas que da a veces, y rscheel tambien. Si pruebas con otro y no te va, busca que puede pasar, pero volver a poner el codigo en el starter no es buena idea, por que a veces da problemas y es mejor estar seguro que no empieza ahí. Aparte que como te dije, mirate el ciclo de vida con starter y veras que con el planteamiento de ese código te dará problemas.
Por otro lado en el otro post ya te dije las librerias que existen para el tema del doze, y tambien para el tema de la priorización del uso de energia, que tambien la puedes emplear. Te las vuelvo a poner:
Existe una libreria (FusedLocationProvider) que puedes priorizar el uso de energia:
https://www.b4x.com/android/help/fusedlocationprovider.html#priority
Aqui puedes encontrar información sobre DOZE :
https://developer.android.com/training/monitoring-device-state/doze-standby.html
Tambien, aunque es una obviedad, tu evento de GPS no se producirá si estas dentro de un edificio y no te mueves lo suficiente como para que exista una nueva localización que provoque el evento, por eso tambien en el otro post te comenté que lo ideal es utilizar la libreria
LOCATIONMANAGER , me dijiste que no te era muy precisa, de ahi a que te comenté que ademas de utilizar
requestMobileLocation utilizaras
requestGPSLocation, yo la empleo y es superprecisa puesto que cuando hay cobertura utiliza GPS, y ademas provoca eventos cada vez que te mueves.
Yo iria paso a paso en las pruebas, cambiar muchas cosas al final no sabes que es lo que falla, pondria un nuevo servicio,
borraria starter del proyecto, emplearia la API mas baja dependiendo de las necesidades que tengas, y haria pruebas de si Android te para el servicio cuando va a sleep. Como te dije en el otro post tengo servicios que estan funcionando siempre, y si ademas hay elementos de ese servicio que crean eventos se activan y entran en el servicio sin necesidad de llamarlo. Ademas de escribir log, crearia un fichero de "log" en el evento de cambio de ubicacion, de esa forma cuando te muevas y no estes conectado al PC podras ver que ha echo sin necesidad de conectarlo al pc y abrir el proyecto.
Y cuando hayas echo todo eso y no te funcione, cuelgalo y uno u otro lo miraremos y podremos decirte por que no te va (o al menos lo intentaremos), pero si pones algo antiguo, es dificil aconsejarte de que hacer aunque nos digas que ya lo probaste y no te funcionó, por que igual no te funcionó por alguna tonteria a nivel de código que no viste, nos pasa a todos, nos centramos mucho en algo y no vemos que estamos fallando en lo mas básico. De ahí salió la frase que los arboles nos impiden ver el bosque
Saludos