¿La mejor manera de usar TriggerEventListener en segundo plano?

Estoy buscando crear una aplicación que se ejecute en segundo plano, registrando datos de ubicación sin que el usuario tenga que tener la aplicación en primer plano, pero al mismo tiempo no usa demasiada batería.

Originalmente pensé en configurar un BroadcastReceiver para BOOT_COMPLETED y ejecutar un servicio que utiliza un sensor de movimiento significativo para registrar datos de ubicación cada vez que se disparó, pero desde Oreo, hay muchas limitaciones en los servicios en segundo plano.

¿Cuál es la mejor manera de hacer esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta