Что такое Job

«Что такое Job» — вопрос из категории Coroutines и Flow, который задают на 32% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Job — это абстракция для выполнения фоновой работы в Android. Представляет единицу работы, которую система может планировать и выполнять в оптимальное время (например, при наличии сети или зарядке устройства).

Ключевые особенности:

  • Выполняется вне жизненного цикла приложения
  • Оптимизирует батарею (работает в пакетах)
  • Подходит для периодических/отложенных задач

Пример (JobScheduler):

val jobScheduler = getSystemService(JOB_SCHEDULER_SERVICE) as JobScheduler  
val jobInfo = JobInfo.Builder(1, ComponentName(this, MyJobService::class.java))  
    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)  
    .setPeriodic(15 * 60 * 1000)  
    .build()  
jobScheduler.schedule(jobInfo)  

Альтернативы: WorkManager (рекомендуется), AlarmManager, Handler.