Мой класс приложения в основном обрабатывает контекст текущей активности и другие вещи (например, показывать тосты, диалоги и т. Д.). Другая вещь, для которой я использую свой класс приложений, предназначена для регистрации широковещательных приемников. Не через контекст активности, а приложения. Что я хочу знать: Будет ли приемник вещания блокировать поток моего пользовательского интерфейса (Activity)? (Я вызываю приемник через приложение, так что это будет иметь значение?) Кроме того, есть опция, которую я могу зарегистрировать получателя через Handler (из контекста приложения). Должен ли я это сделать? Или есть ли какой-либо другой доступ, который не будет блокировать мой основной поток? Спасибо.Регистрация широковещательного приемника через контекст приложения
ответ
BroadcastReceiverOnReceive()
всегда вызывается в главном потоке своего процесса, если явно не просил, чтобы он был запланирован в другом потоке, используя [registerReceiver(BroadcastReceiver, IntentFilter, String, android.os.Handler)
] (https://developer.android.com/reference/android/content/Context.html#registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter, java.lang.String, андроида. os.Handler)).
Когда он запускается в основном потоке, вы никогда не должны выполнять длительные операции в нем (есть время ожидания 10 секунд, которое система разрешает перед тем, как считать, что приемник заблокирован, и кандидата, которого нужно убить). Вы не можете запустить всплывающее диалоговое окно в вашей реализации onReceive()
.
- 1. Как получить контекст приложения из широковещательного приемника?
- 2. Обеспечить контекст для широковещательного приемника
- 3. Регистрация широковещательного приемника от другого широковещательного приемника в android
- 4. Регистрация широковещательного приемника с использованием манифеста
- 5. Как использовать контекст внутри широковещательного приемника?
- 6. Регистрация широковещательного приемника динамически не работает - BluetoothDevice.ACTION_FOUND
- 7. Регистрация широковещательного приемника во время выполнения?
- 8. Регистрация широковещательного приемника в классе неактивности
- 9. Жизненный цикл широковещательного приемника
- 10. Почему динамическая регистрация широковещательного приемника не работает после перезагрузки
- 11. Результат Назад от широковещательного приемника
- 12. Начать работу с широковещательного приемника
- 13. Закрыть приложение от широковещательного приемника
- 14. Вызывающая активность от широковещательного приемника
- 15. Получить переменную от широковещательного приемника
- 16. Как дожидаться приема широковещательного приемника
- 17. Вызов активности от широковещательного приемника
- 18. Начало службы от широковещательного приемника
- 19. Изменить фрагмент из широковещательного приемника?
- 20. Запуск службы от широковещательного приемника
- 21. Ошибка при использовании широковещательного приемника
- 22. , начинающий асинтаску от широковещательного приемника
- 23. Два события для одного широковещательного приемника
- 24. завершение фоновой активности от широковещательного приемника
- 25. Доступ к общим настройкам от широковещательного приемника
- 26. Вызов метода активности от широковещательного приемника андроида?
- 27. Как обратиться к контексту приложения от широковещательного приемника
- 28. Загрузка закрытого приложения из ожидающего ответа с помощью широковещательного приемника
- 29. Выполнение задач из широковещательного приемника при закрытии приложения [Android]
- 30. Как вызвать методы активности из широковещательного приемника после выхода приложения?
'BroadcastReceiver' всегда работает на потоке пользовательского интерфейса. – nukeforum