У меня есть действие, которое отображает некоторые данные, полученные с сервера.Если соединение недоступно, активность отображает некоторые кэшированные данные;если соединение доступно, активность извлекает данные и отображает их.Все работает, как и ожидалось.
Теперь я бы хотел, чтобы мои действия перезагрузили данные, как только будет установлено соединение.Я использую простой приемник, который расширяет 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 receive = новый ConnectionChangeReceiver ();this.registerReceiver (приемник, новый IntentFilter (ConnectivityManager.CONNECTIVITY_ACTION));
Теперь я не понимаю, что делать дальше.Когда метод onReceive выполняется, как сделать так, чтобы моя деятельность знала об этом?Я знаю, что могу начать новую деятельность, но это не совсем то, чего я хочу.Должен ли я объявить ConnectionChangeReceiver частным классом моей деятельности?Или есть другое решение?