55. Androidda service nima? Service (xizmat) Androidda fon jarayonlari sifatida ishlaydi va android.app.Service sinfi bilan ifodalanadi. Ular foydalanuvchi interfeysiga ega emas va foydalanuvchi aralashuvi talab etilmagan hollarda kerak bo'ladi. Servislar veb-serverga tarmoq so'rovlarini beradi, ma'lumotlarni qayta ishlaydi, bildirishnomalarni ishga tushiradi va hokazo. Servis ishga tushirilishi mumkin va kimdir uni to'xtatmaguncha yoki u o'zini to'xtatmaguncha ishlashda davom etadi. Servislar faoliyatdan farqli o'laroq davom etishi kerak. Ular doimiy ravishda qayta ishga tushirish, doimiy vazifalarni bajarish yoki uzoq vaqt talab qiladigan vazifalarni bajarish orqali ishlashi mumkin. Servislardan foydalanib, ilovalar faol bo'lmagan taqdirda ham ishlashda va hodisalarga javob berishda davom etishiga amin bo'lish mumkin. Ular ishlashi uchun alohida grafik interfeys talab qilmaydi, lekin ular hali ham asosiy dastur oqimida ishlaydi. Ilovaning javob berish qobiliyatini oshirish uchun Thread va AsyncTask sinflari yordamida ko'p vaqt talab qiluvchi jarayonlarni (tarmoq so'rovlari kabi) fon oqimlariga o'tkazish imkoniyatiga ega bo'lish kerak.
Android xizmati - bu foydalanuvchi interfeysisiz ba'zi ishlarni bajarish uchun mo'ljallangan komponent. Xizmat faylni yuklab olishi, musiqa tinglashi yoki tasvirga filtr qo‘llashi mumkin. Xizmatlardan Android ilovalari o'rtasida protsesslararo aloqa (IPC) uchun ham foydalanish mumkin.
Android xizmatlarining 4 xil turi mavjud:
· Bog'langan xizmat - Bog'langan xizmat unga bog'langan boshqa komponentga (odatda Faoliyat) ega bo'lgan xizmatdir. Bog'langan xizmat bog'langan komponent va xizmatning bir-biri bilan o'zaro ta'sirini ta'minlaydigan interfeysni ta'minlaydi. Xizmatga bog‘langan mijozlar qolmasa, Android xizmatni o‘chirib qo‘yadi.
· IntentService - IntentService - bu xizmatlarni yaratish va undan foydalanishni soddalashtiradigan Xizmat sinfining ixtisoslashgan kichik klassi. IntentService individual avtonom qo'ng'iroqlarni boshqarish uchun mo'ljallangan. Bir vaqtning o'zida bir nechta qo'ng'iroqlarni bajarishi mumkin bo'lgan xizmatdan farqli o'laroq, IntentService ko'proq ish navbati protsessoriga o'xshaydi - ish navbatga qo'yiladi va IntentService har bir ishni bir vaqtning o'zida bitta ishchi ipida qayta ishlaydi. Odatda, IntentService faoliyat yoki fragment bilan bog'lanmaydi.
· Boshlangan xizmat – ishga tushirilgan xizmat boshqa Android komponenti (masalan, Faoliyat) tomonidan ishga tushirilgan va biror narsa xizmatni to‘xtatishni aniq aytmaguncha, fonda uzluksiz ishlaydigan xizmatdir. Bog'langan xizmatdan farqli o'laroq, boshlangan xizmatda unga bevosita bog'langan mijozlar yo'q. Shu sababli, boshlangan xizmatlarni kerak bo'lganda chiroyli tarzda qayta ishga tushirish uchun loyihalashtirish muhimdir.
· Gibrid xizmat – Gibrid xizmat – bu ishga tushirilgan xizmat va bog‘langan xizmat xususiyatlariga ega bo‘lgan xizmatdir. Gibrid xizmat komponent unga bog'langanda yoki biron bir hodisa bilan ishga tushirilishi mumkin. Mijoz komponenti gibrid xizmatga bog'langan yoki bog'lanmagan bo'lishi mumkin. Gibrid xizmat to'xtatish to'g'risida aniq aytilmaguncha yoki unga boshqa mijozlar bog'lanmaguncha ishlashda davom etadi.