У меня есть действие, которое отображает некоторые данные, полученные с сервера. Если соединение недоступно, активность отображает некоторые кэшированные данные; если соединение доступно, действие извлекает данные и отображает их. Все работает как положено.
Теперь я хотел бы, чтобы моя деятельность перезагружала данные, как только происходит соединение. Я использую простой Receiver, который расширяет BroadcastReceiver:
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?
}
}
}
Приемник широковещательной рассылки объявлен в моем файле манифеста следующим образом:
<receiver android:name=".ConnectionChangeReceiver"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
В своей деятельности я регистрирую получателя:
ConnectionChangeReceiver receiver = new ConnectionChangeReceiver (); this.registerReceiver (получатель, new IntentFilter (ConnectivityManager.CONNECTIVITY_ACTION));
Теперь я не понимаю, что делать дальше. Когда выполняется метод onReceive, как сообщить об этом моей деятельности? Я знаю, что могу начать новую деятельность, но на самом деле это не то, чего я хочу. Должен ли я объявить ConnectionChangeReceiver как частный класс моей деятельности? Или есть другое решение?