ANDROID: Как зарегистрироваться для изменения подключения из Сервиса?
В моем приложении у меня есть один сервис, который обновляет все элементы графического интерфейса. Поэтому мне нужно зарегистрировать свой сервис на CONNECTIVITY_CHANGE_ACTION. Таким образом, он может уведомлять все действия об обновлении GUI всякий раз, когда он получает какие-либо обновления соединения в виде широковещательной рассылки.
Чтобы достичь этого, я объявил приемник вещания класса публичного члена в моем сервисе. Ниже приведены фрагменты кода.
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 в виртуальном устройстве. Подскажите пожалуйста что может быть не так? Я делаю это правильно?
1 ответ
Пытаться...
<receiver android:name=".BkgService$ConnectionUpdater">
Вы пропустили .
до BkgService
и внутреннее имя класса должно быть отделено от основного класса $
знак.