Скорее нет, чем да. Зависит от того, что считать длительной операцией. Отвечая на этот вопрос, расскажите, что происходит с
процессом приложения, в котором запущен только
BroadcastReceiver.
Допустим приложение не запущено и ресивер, зарегистрированный в манифесте, получает событие. В этом случае система стартует процесс приложения и вызывает
BroadcastReceiver.onReceive() в главном потоке. Фоновые процессы имеют
низкий приоритет, поэтому после завершения метода
onReceive() система убивает процесс приложения. Если в
onRecieve() запустить фоновый поток, о котором не знает система, например, чтобы выполнить запрос на бэкенд, процесс все равно будет убит.
Для выполнения фоновых потоков в
onReceive() используется метод
goAsync(), который сохраняет
BroadcastReceiver после завершения
onReceive(). Но даже с использованием метода
goAsync() жизнь ресивера ограничивается 10 секундами.
Для выполнения действительно длительных операций рекомендуется использовать
Foregorund service или
JobIntentService, которые можно запустить в
onReceive().
Подробнее в документации.