В моем приложении есть один сервис, который обновляет все элементы графического интерфейса.Поэтому мне нужно зарегистрировать свой сервис на CONNECTIVITY_CHANGE_ACTION.Чтобы он мог уведомлять все действия об обновлении графического интерфейса всякий раз, когда он получает какие-либо обновления соединения в виде широковещания.
Для достижения этого я объявил в своем сервисе открытый приемник класса членов.Ниже приведены фрагменты кода.
public class BkgService extends Service{
public class ConnectionUpdater extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info == null || !info.isConnected()) {
}
else{
cd.setIsOnline(true,context);
}
Intent intent1 = new Intent();
intent1.setAction(ACTION_GUI_UPDATE);
sendBroadcast(intent1);
}
}
в моем файле манифеста, который я объявил так:
<service android:name=".BkgService" />
<receiver android:name="BkgService.ConnectionUpdater">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
Я не получаю никакой ошибки для этого.Но я не получаю никаких широковещательных обновлений, когда я включаю / отключаю данные 3G в виртуальном устройстве.Подскажите пожалуйста что может быть не так?Я делаю это правильно?