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 чейин обык- фондук сервис чектөөлөргө дуушар болбой иштей алчу.