Pausa del servicio hasta que se pueda establecer la conexión a Internet

Tengo un servicio que se ejecuta al finalizar el arranque. Este servicio requiere conectividad a internet. ¿Cuál es la mejor práctica para esperar a que el dispositivo se conecte a Internet? El móvil de wifi realmente no importa.

Mi solución actual implica un ciclo while que solo comprueba ConnectivityManager hasta que una de las redes esté disponible, pero esto se siente vulgar.

¿Hay una mejor manera de hacer esto

Respuestas a la pregunta(4)

Su respuesta a la pregunta