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

2 Solutions collect form web for “Enfoque eficiente para comprobar continuamente si la conexión a Internet está disponible en Android”

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 .

  • servicio androide para realizar un seguimiento de las llamadas salientes y SMS en segundo plano
  • BroadcastReceiver vs Servicio
  • ¿Cómo iniciar un servicio Android desde una actividad y detener el servicio en otra actividad?
  • Detectar evento táctil de botones de navegación dentro de un servicio con ventana
  • Java.io.IOException: SERVICE_NOT_AVAILABLE en el cliente de GCM
  • Cómo autenticar servicio web sap con ksoap2
  • Cómo forzar el onServiceDisconnected () obtener llamado?
  • SetInterval equivalente en Android / Java?
  • Evitar copias múltiples de un servicio de Android
  • Mantenga el servicio en ejecución
  • Paho MQTT Android Service Issue
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.