Предположим, у меня есть Activity
. В своем обратном вызове onCreate
я создаю объект BroadcastReceiver
, внедряя его как анонимный класс и помещая некоторый код в свой обратный вызов onReceive
, который требует Activity
Context
, чтобы показать сообщение Toast
, когда он вызывается. В Activity
onResume
callback Я зарегистрирую это BroadcastReceiver
и в Я его отменил, поскольку он содержит код, который требует Activity
Context
, и он может быть недоступен, если Activity
проходит процедуру уничтожения, то есть изменение ориентации. Это означает, что если что-то, то есть IntentService
, транслирует Intent
для этого BroadcastReceiver
, в то время как он незарегистрирован (как бы ни короток, но он все еще может произойти), Intent
никогда не будет доставлен, и правильные действия, которые его обрабатывают, никогда не произойдут. Таким образом, пользователь может пропустить важную информацию (сообщение, информирующее о успешной регистрации, предупреждение о том, что что-то пошло не так) и я прав? Верно ли, что такой сценарий может произойти? Как предотвратить это? Как убедиться, что BroadcastReceiver
получит трансляцию независимо от того, когда какая-то часть приложения срабатывает?Получение трансляции во время изменений жизненного цикла активности
ответ
Создайте MyBroadcastReceiver
, продолжая BroadcastReceiver
(разумеется: D) и зарегистрируйте это в манифесте с соответствующим действием фильтра намерений. Затем в onReceive()
у вас будет доступ к Application's Context
. Имейте в виду, что onReceive()
будет запущен, даже если ваше приложение будет закрыто (если ваше действие - Intent.ACTION_SCREEN_OFF
). Это зависит от того, что вы пытаетесь сделать в этом приемнике ... также обратите внимание на EventBus https://github.com/greenrobot/EventBus, если вам нужно отправлять события в свое приложение.
В этом 'BroadReceiver'' onReceive' I просто хочу показать сообщение для пользователя, но это сообщение может отображаться в форме «TextView», но без «Контекста» «Activity», что «TextView» бессмысленно :). – Salivan
Хорошо, кто отправляет сообщение? Если я получу это правильно, вы хотите нажать сообщения внутри очереди, когда они прибудут, и когда откроется «Активность», отобразите эти сообщения? Возможно, вы захотите сохранить эти сообщения ... Я не думаю, что понимаю, почему вы хотите показывать сообщения, когда активность не открыта. –
Вы поняли меня неправильно. Я просто хочу, чтобы «Активность» знала, когда некоторая «Служба» завершает свою работу. Если «Активность» уничтожена, потому что пользователь этого пожелал, сообщение не должно отображаться, но я боюсь, что это может произойти при изменении ориентации, например. Таким образом, «Активность» может не получить сообщение, заставляющее пользователя ждать сообщения, которое уже было отправлено и больше никогда не будет. – Salivan
- 1. Проверка жизненного цикла Android-активности
- 2. Пример жизненного цикла жизненного цикла
- 3. Регистрация BroadcastReceiver только во время жизненного цикла процесса
- 4. Android: Сохранение состояния во время жизненного цикла Android
- 5. Значение переменных изменений во время цикла [ОБНОВЛЕНО]
- 6. сохранения данных в течение жизненного цикла активности
- 7. Ошибка жизненного цикла активности Jellybean для Android
- 8. изменение изображения во время трансляции
- 9. Хороший способ кэширования данных во время жизненного цикла приложения Android?
- 10. Glassfish ошибка Exception во время жизненного цикла обработки java.nio.BufferUnderflowException
- 11. Что происходит во время каждого этапа жизненного цикла модели ActiveRecord?
- 12. Как перехватить запрос во время жизненного цикла Джерси?
- 13. JSF2.0 - CSS-изменение теряется во время жизненного цикла
- 14. Когда включен OnAttach во время жизненного цикла фрагментов?
- 15. Когда ограничения автоопределения устанавливают кадры во время жизненного цикла контроллера?
- 16. Зарегистрировать обратный вызов жизненного цикла во время фазы компиляции
- 17. Как сохранить среду сборки во время жизненного цикла продукта
- 18. Android: выполняются ли методы жизненного цикла событий активности, которые запущены?
- 19. Порядок создания, запуска и запуска жизненного цикла активности
- 20. Отслеживание жизненного цикла деятельности
- 21. Противоречие в диаграмме жизненного цикла активности по сравнению с описанием жизненного цикла
- 22. Метод жизненного цикла Android
- 23. Последовательность цикла жизненного цикла фрагмента
- 24. Получение переменной изнутри во время цикла
- 25. Получение значения переключателя во время цикла
- 26. php- получение неправильных значений во время цикла
- 27. Перерыв во время цикла и получение счета
- 28. Получение «System.OutOfMemoryException» во время цикла foreach
- 29. Каковы методы жизненного цикла приложений для Android? (не методы жизненного цикла активности.)
- 30. Проверка жизненного цикла ActivityUnitTestCase
В этом случае не используйте 'BroadcastReceiver', вместо этого используйте шаблон« привязанного сервиса ». – pskink
Я совершенно забыл про такую вещь. Некоторое время не разрабатывали для Android :(Я подумаю о решении, использующем связанный сервис, но я по-прежнему буду признателен за получение более простого решения. – Salivan