En la aplicación para Android que estoy diseñando, mi servicio sólo tiene que estar en ejecución cuando el dispositivo está conectado al router (a través de WiFi, obviamente). Soy nuevo en Android, y lo que tengo hasta ahora me ha llevado para siempre a Achieve, así que realmente espero algunos consejos.Android: ¿Detener/Iniciar servicio dependiendo del estado de WiFi?
Mi servicio está configurado para poner en marcha cuando el teléfono se pone en marcha. Además, cuando se inicia la actividad, se verifica si el servicio se está ejecutando, y si no, lo inicia. me pregunto qué código que puedo poner en mi servicio para que sea apagar si se pierde el estado de Wi-Fi - y qué código que necesita para que el servicio se inicia una vez que una conexión Wi-Fi se activa?
Gracias! :)
Gracias! Esta fue la base de mi solución. La clase NetWatcher era exactamente lo que necesitaba, pero esta solución es verdadera si la conexión de datos móviles está activada (el servicio solo necesita ejecutarse cuando WiFi está activo, no datos móviles). Solución: WifiManager wifiManager = (WifiManager) this.getSystemService (Context.WIFI_SERVICE); if (wifiManager.isWifiEnabled()) { // iniciar el servicio } else { // detener el servicio } –
Debería ser 'Intent intent = new Intent (context, MyService.class);' Usar 'this' como argumento para la intención constructor no es válido dentro de un 'BroadcastReceiver'. También debería ser 'context.startService (intent)'. – faizal
@faizal gracias por las sugerencias de limpieza. He editado esta publicación para incluirlos. – Phil