Android: escucha de cambio de conectividad a Internet

Ya tengo este código que escucha el cambio de conectividad:

public class NetworkStateReceiver extends BroadcastReceiver
{
  public void onReceive(Context context, Intent intent)
  {
    Log.d("app","Network connectivity change");

    if(intent.getExtras() != null)
    {
      NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
      if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED)
      {
        Log.i("app", "Network " + ni.getTypeName() + " connected");
      }
    }

    if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE))
    {
      Log.d("app", "There's no network connectivity");
    }
  }
}

Y compruebo la conectividad a Internet con este código:Comprobación de internet

Pero el problema es que si la red pierde repentinamente la conexión a Internet sin ningún cambio de conectividad, este código es inútil. ¿Hay alguna forma de crearReceptor de radiodifusión oyente para el cambio de conectividad a Internet? Tengo una aplicación web y los cambios repentinos de conectividad a Internet pueden causar problemas.

Respuestas a la pregunta(4)

Su respuesta a la pregunta