Android-связанный список слушателей - PullRequest
0 голосов
/ 01 апреля 2012

У меня есть список слушателей.когда происходит событие, я хочу запустить бросить список и отправить всем им сообщение.по какой-то причине следующий код не работает:

private List<Listener> internetListeners = new ArrayList<Listener>();
private Iterator<Listener> it;

public void updateInternetListeners(boolean state)
{       
    Listener listener;
    it = internetListeners.iterator();
    if (state)
        Log.d("Listener", "updating true");
    else
        Log.d("Listener", "updating false");
    while (it.hasNext())
    {
        listener = (Listener)it.next();
        listener.onInternetStateChange(state);
    }
}

моя активность, которая слушает:

    @Override
public void onInternetStateChange(boolean state) {
    if (state)
        text.setText("Internet is On");
    else
        text.setText("Internet is Off");        
}

РЕДАКТИРОВАНИЕ: хорошо, я нашел мою проблему ... этот класс расширяет BroadcastReceiver.и список находится внутри этого класса.Каждое время состояние Интернета меняется, он создает новый экземпляр этого класса, а зарегистрированные слушатели не доступны для этого экземпляра. Какую оболочку я делаю?

1 Ответ

0 голосов
/ 01 апреля 2012

Вы не должны регистрировать слушателей из зарегистрированного манифеста BroadcastReceiver.Как вы заметили, этот объект уничтожается сразу после возвращения onReceive().Зарегистрированный в манифесте BroadcastReceiver сам по себе не может делать ничего, что длится до конца onReceive().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...