Enfoque eficiente para comprobar continuamente si la conexión a Internet está disponible en Android

Posible duplicado:
¿Cómo puedo supervisar el estado de la conexión de red en Android?

Necesito comprobar continuamente si el Internet está conectado o no y actualizar el área de texto por consiguiente con el mensaje apropiado. Ahora si creo un asynctask ejecutará una vez y parada que no es lo que quiero. Quiero comprobar en cada momento continuamente y, obviamente, esto no debería estar en el hilo principal. Por lo tanto, el servicio no será una buena opción. ¿Puede alguien ayudarme ¿Cuál es el mejor y eficiente enfoque para manejar esto. Gracias

Hágalo con un receptor. Se le puede notificar sobre el cambio de estado de la red. por ejemplo,

private BroadcastReceiver networkReceiver = new BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); if(intent.getExtras()!=null) { NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO); if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) { // we're connected } } // we're not connected } } 

onResume() en su onResume() y onPause() el registro en onPause() .

 @Override protected void onPause() { super.onPause(); unregisterReceiver(networkReceiver); } @Override protected void onResume() { super.onResume(); IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(networkReceiver, filter); } 

Además, para obtener el estado inicial antes de que su receptor haya sido registrado, llame a esto en su método onResume()

 public boolean isNetworkConnected() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null && netInfo.isConnectedOrConnecting()) { return true; } return false; } 

Asegúrese de que su aplicación solicite este permiso,

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

No es necesario pedir constantemente al sistema operativo si hay una conexión de red. Simplemente compruebe si existe una conexión en onResume() y luego use BroadcastReceiver para escuchar la intención CONNECTIVITY_ACTION del ConnectivityManager cuando se cambia la conexión y marque EXTRA_NO_CONNECTIVITY .

  • Priorizar la programación del reinicio del servicio androide bloqueado
  • Crear un servicio programado en android
  • Cómo iniciar el servicio en android sin actividad
  • Error en la conexión de Google Analytics con Google para el servicio
  • ¿Cuáles son las ventajas y desventajas de ejecutar un servicio en un proceso diferente?
  • Servicio de Android Cerrar inesperadamente
  • StartService de la clase que no extiende Actividad
  • Guardar el estado del servicio enlazado antes de que sea eliminado por Android
  • AlarmManager no se repite
  • Android - Servicio periódico de fondo - Asesoramiento
  • ¿Sigue funcionando un servicio incluso cuando el teléfono está dormido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.