Sobes.tech
Intern

Androidда фондук кызмат жана фондук кызматтын айырмасы эмнеде?

sobes.tech AI

AIден жооп

Android 8.0 (API 26) менен пайда болгон фондук сервистердин жана чектелген (restricted) сервистердин айырмасы:

Обуучу фондук сервис:

  • Анын фондук режимде чексиз убакыт иштөө мүмкүнчүлүгү бар.
  • Жүйө ресурстар жетишпегенде аны токтотушу мүмкүн, бирок onStartCommand() ичинде START_STICKY кайтарылса кайра ишке киргизилиши мүмкүн.
  • Колдонуучуга көрүнүүчү билдирүүлөр талап кылынбайт (бирок бул UX жагынан эң жакшы практика эмес).
  • Батерия жана CPU ресурстарын көп сарпташы мүмкүн.

Чектелген фондук сервис (чектөөлөр колдонулат):

  • Көрүнбөгөн активдүүлүк же башка "акылдуу" шарттарсыз фондук режимде иштетилген кызмат, ресурстарды колдонуу боюнча чектөөлөргө дуушар болот.
  • Башкы чектөөлөр:
    • Фондук иштөө чектөө: Кыска убакыттан кийин (адатта бир нече мүнөт) систем тарабынан токтотулушу мүмкүн.
    • Жаңы фондук сервистерди иштетүүгө тыюу: startService() аркылуу жаңы сервистерди иштетүүгө болбойт. Анын ордуна JobScheduler же WorkManager колдонуу керек.
    • Жалпысынан билдирүүлөрдү алуу чектөө: Манифесттеги жасалма (implicit) broadcast билдирүүлөрү эске алынбайт. Колдонуучу broadcast кабылдоочуларын так каттоого алышы керек же JobScheduler/WorkManager колдонушу керек.
  • Бул чектөөлөрдүн максаты батареянын иштөө мөөнөтүн жана түзмөктүн иштөө жөндөмдүүлүгүн жакшыртуу, фондук тиркемелердин натыйжасыз колдонушун чектөө.

Кандайча сервис чектелбеген (системанын көз карашында активдүү) болот:

  • Тиркеме алдыңкы планга чыгат (колдонуучу менен активдүү иштейт).
  • Тиркеме көрүнүүчү сервисти (foreground service) иштетет, ал үзгүлтүксүз билдирүүнү көрсөтөт.
  • Тиркеме белгилүү тапшырмаларды аткарат (мисалы, broadcast билдирүүлөрдү иштетүү, JobScheduler тапшырмаларын аткаруу), бул аны толук фону иштен чыгарып салат.

Негизги айырма: Android 8.0 жана андан кийинки версияларда, көрүнбөгөн активдүүлүк менен иштеген сервис, системанын чектөөлөрүнө дуушар болот ресурстарга жана узак мөөнөттүү иштөө мүмкүнчүлүгүнө байланыштуу. 8.0 чейин обык- фондук сервис чектөөлөргө дуушар болбой иштей алчу.