Android обменивается данными между активностью и широковещательным приемником

У меня есть действие, которое отображает некоторые данные, полученные с сервера. Если соединение недоступно, активность отображает некоторые кэшированные данные; если соединение доступно, действие извлекает данные и отображает их. Все работает как положено.
Теперь я хотел бы, чтобы моя деятельность перезагружала данные, как только происходит соединение. Я использую простой 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 как частный класс моей деятельности? Или есть другое решение?

5
задан Maggie 30 July 2011 в 10:14
поделиться