Почему нельзя выполнять фоновую работу в Application

«Почему нельзя выполнять фоновую работу в Application» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В классе Application не рекомендуется выполнять фоновую работу, так как:

  1. Блокировка UI-потока – если работа синхронная, это может привести к ANR (Application Not Responding).
  2. Неопределённый контекстApplication живет дольше активити, но не гарантирует, что компоненты приложения уже инициализированы.
  3. Потребление ресурсов – фоновые операции могут замедлить запуск приложения.

Лучше использовать:

  • WorkManager для отложенных задач
  • Coroutine/RxJava с правильной областью видимости (LifecycleScope и т.д.)
// Плохо:
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        Thread { /* Тяжелая работа */ }.start() // Риск утечки/ANR
    }
}