2013-05-12 15 views
1

Документация BroadcastReceiver says:Android BroadcastReceiver и Activity.onPause()

Если регистрируя приемник в вашей реализации Activity.onResume(), вы должны отменить его в Activity.onPause(). (Вы не будете получать намерения при паузе, и это сократит ненужные системные издержки).

Я сделал пример Activity A1, который имеет внутренний BroadcastReceiver, который обновляет интерфейс A1, когда служба S1 создает sendBroadcast. S1 тратит около 8 секунд.

При запуске A1 и нажатии кнопки «домой» для вызова A1 во время паузы «он все еще получает намерение от sendBroadcast» и обновляет интерфейс, я что-то упустил или документация не так?

+0

Вы назвали unregisterReceiver in onPause? –

+0

Вы также объявили фильтр намерений в манифесте? – stinepike

+0

Что вы имеете в виду, сделав А1 звонок onPause – Bolton

ответ

0

Документ должен сказать, что если вы не зарегистрированы в onPause(), вы не будете получать трансляции при приостановке. Если вы не зарегистрированы, вы будете продолжать получать трансляции. Вы незарегистрированы в onDestroy(), но когда нажат домашний ключ, вызывается только onStop(), и onDestroy() не будет вызываться. Таким образом, вы продолжаете получать трансляцию.

Смежные вопросы