Tengo una actividad que muestra algunos datos obtenidos del servidor. Si no hay conexión disponible, la actividad muestra algunos datos en caché; si la conexión está disponible, la actividad obtiene datos y los muestra. Todo funciona como se esperaba
Ahora, me gustaría hacer que mi actividad vuelva a cargar los datos tan pronto como se produzca la conexión. Estoy utilizando un receptor simple que se extiende la BroadcastReceiver:android se comunica entre la actividad y el receptor de difusión
public class ConnectionChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
if (activeNetInfo != null) {
//what to do here?
}
}
}
Receptor de radio se declara en mi archivo de manifiesto de la siguiente manera:
<receiver android:name=".ConnectionChangeReceiver"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
En mi actividad, registro del receptor:
ConnectionChangeReceiver receiver = nuevo ConnectionChangeReceiver(); this.registerReceiver (receptor, nuevo IntentFilter (ConnectivityManager.CONNECTIVITY_ACTION));
Ahora, estoy confundido como qué hacer a continuación. Cuando se ejecuta el método onReceive, ¿cómo hacer que mi actividad sea consciente de eso? Sé que podría comenzar una nueva actividad, pero eso no es realmente lo que quiero. ¿Debo declarar ConnectionChangeReceiver como una clase privada de mi actividad? ¿O hay alguna otra solución?
cree la clase ConnectionChangeReceiver dentro de la actividad que desea conocer de las conexiones, dentro de Receive, actualice las partes de la interfaz de usuario después de recibir la señal de conectividad. – sat