Reklamani yopish

Hali ham ko'p odamlar iOS-da multitasking qanday ishlashini bilmaydilar. Biroq, boshlash uchun shuni ta'kidlash kerakki, bu haqiqiy ko'p vazifa emas, balki tizimga yoki foydalanuvchiga yuk bo'lmaydigan juda aqlli yechim.

Ko'pincha iOS-da fonda ishlaydigan ilovalar operatsion xotirani to'ldiradi, bu tizimning sekinlashishiga va batareyaning ishlash muddatiga olib keladi, shuning uchun foydalanuvchi ularni qo'lda o'chirib qo'yishi kerakligi haqidagi xurofotlarni tez-tez eshitish mumkin. Ko'p vazifa panelida barcha ishlaydigan fon jarayonlari ro'yxati mavjud emas, faqat eng so'nggi ishga tushirilgan ilovalar. Shunday qilib, foydalanuvchi bir nechta holatlardan tashqari fonda ishlaydigan jarayonlar haqida tashvishlanmasligi kerak. "Uy" tugmasini bosganingizda, dastur odatda uyqu rejimiga o'tadi yoki yopiladi, shunda u endi protsessor yoki batareyani yuklamaydi va kerak bo'lsa, kerakli xotirani bo'shatadi.

Demak, sizda oʻnlab jarayonlar ishlayotgan boʻlsa, bu toʻliq koʻp vazifalilik emas.Faqat bitta ilova doimo oldingi planda ishlaydi, agar kerak boʻlsa, toʻxtatiladi yoki butunlay oʻchiriladi. Orqa fonda faqat bir nechta ikkinchi darajali jarayonlar ishlaydi. Shuning uchun siz kamdan-kam hollarda iOS’da ilovalarning ishdan chiqishiga duch kelasiz, masalan, Android foydalanuvchi g'amxo'rlik qilishi kerak bo'lgan ishlaydigan ilovalar bilan to'lib-toshgan. Bir tomondan, bu qurilma bilan ishlashni yoqimsiz qiladi, boshqa tomondan, bu, masalan, sekin ishga tushirish va ilovalar o'rtasida o'tishni keltirib chiqaradi.

Ilovaning ishlash vaqti turi

iOS qurilmangizdagi ilova quyidagi 5 holatdan birida joylashgan:

  • Yugurish: ilova ishga tushiriladi va oldingi planda ishlaydi
  • Fon: u hali ham ishlayapti, lekin fonda ishlaydi (biz boshqa ilovalardan foydalanishimiz mumkin)
  • Toʻxtatilgan: Hali ham RAM ishlatilmoqda, lekin ishlamayapti
  • Faol emas: ilova ishlayapti, lekin bilvosita buyruqlar (masalan, dastur ishlayotgan holda qurilmani qulflaganingizda)
  • Ishlamaydi: Ilova tugatildi yoki boshlanmadi

Chalkashlik, bezovta qilmaslik uchun dastur fonga o'tganda paydo bo'ladi. Bosh sahifa tugmasini bosganingizda yoki ilovani (iPad) yopish uchun ishorani ishlatganingizda, dastur fonga o'tadi. Aksariyat ilovalar bir necha soniya ichida toʻxtatib qoʻyiladi (Ular iDevice operativ xotirasida saqlanadi, shuning uchun ular tezda ishga tushadi, ular protsessorni unchalik yuklamaydi va shu tariqa batareya quvvatini tejaydi) Agar ilova xotiradan foydalanishda davom etsa, sizda shunday deb oʻylashingiz mumkin. bo'shatish uchun qo'lda o'chirish uchun. Lekin buni qilish shart emas, chunki iOS buni siz uchun qiladi. Agar sizda katta hajmdagi operativ xotira ishlatadigan oʻyin kabi talabchan dastur fonda toʻxtatilgan boʻlsa, iOS kerak boʻlganda uni avtomatik ravishda xotiradan olib tashlaydi va ilova belgisini bosish orqali uni qayta ishga tushirishingiz mumkin.

Ushbu holatlarning hech biri ko'p vazifa panelida aks ettirilmaydi, dastur to'xtatilgan, to'xtatilgan yoki fonda ishlayotganidan qat'i nazar, panel faqat yaqinda ishga tushirilgan ilovalar ro'yxatini ko'rsatadi. Bundan tashqari, hozirda ishlayotgan dastur Multitasking panelida ko'rinmasligini ham sezishingiz mumkin

Fon vazifalari

Odatda, "Uy" tugmasini bosganingizda, dastur fonda ishlaydi va agar siz undan foydalanmasangiz, u besh soniya ichida avtomatik ravishda to'xtatiladi. Shunday qilib, agar siz podkastni yuklab olayotgan bo'lsangiz, masalan, tizim uni ishlaydigan dastur sifatida baholaydi va tugatishni o'n daqiqaga kechiktiradi. O'n daqiqadan so'ng jarayon xotiradan chiqariladi. Muxtasar qilib aytganda, agar uni yakunlash uchun 10 daqiqadan ko'proq vaqt ketmasa, "Uy" tugmasini bosish orqali yuklab olishni to'xtatib qo'yishdan tashvishlanishingiz shart emas.

Fonda noma'lum yugurish

Faol bo'lmagan taqdirda, tizim dasturni besh soniya ichida to'xtatadi va yuklab olingan taqdirda, tugatish o'n daqiqaga kechiktiriladi. Biroq, fonda ishlashni talab qiladigan oz sonli ilovalar mavjud. Quyida iOS 5 da fonda cheksiz ishlashi mumkin boʻlgan baʼzi ilovalar misollari keltirilgan:

  • Ovoz chiqaradigan va bir muddat uzilishi kerak bo'lgan ilovalar (telefon qo'ng'irog'i paytida musiqani to'xtatib turish va h.k.),
  • Joylashuvingizni kuzatuvchi ilovalar (navigatsiya dasturi),
  • VoIP qo'ng'iroqlarini qabul qiluvchi ilovalar, masalan, Skype-dan foydalansangiz, ilova fonda bo'lsa ham qo'ng'iroqni qabul qilishingiz mumkin.
  • Avtomatik yuklashlar (masalan, Newsstand).

Barcha ilovalar, agar ular boshqa vazifani bajarmasa (masalan, fonda yuklab olishlar) yopilishi kerak. Biroq, doimiy ravishda fonda ishlaydigan istisnolar mavjud, masalan, mahalliy pochta ilovasi. Agar ular fonda ishlayotgan bo'lsa, ular xotirani, protsessordan foydalanishni oladi yoki batareyaning ishlash muddatini qisqartiradi

Fonda cheksiz muddatga ishlashiga ruxsat berilgan ilovalar ishlayotgan vaqtda musiqa tinglashdan tortib, yangi Podcast epizodlarini yuklab olishgacha bo‘lgan barcha ishlarni bajarishi mumkin.

Yuqorida aytib o'tganimdek, foydalanuvchi hech qachon fonda ishlaydigan ilovalarni yopishi shart emas. Buning yagona istisnosi, fonda ishlayotgan ilovaning ishlamay qolishi yoki uyqudan to'g'ri uyg'onmasligi. Keyin foydalanuvchi ko'p vazifalar panelida ilovalarni qo'lda yopishi mumkin, ammo bu kamdan-kam hollarda bo'ladi.

Shunday qilib, umuman olganda, fon jarayonlarini boshqarishingiz shart emas, chunki tizim ularni o'zi hal qiladi. Shuning uchun iOS yangi va tezkor tizimdir.

Ishlab chiquvchi nuqtai nazaridan

Ilova multitaskingning bir qismi sifatida jami olti xil holat bilan reaksiyaga kirishishi mumkin:

1. applicationWillResignActive

Tarjimada bu holat kelajakda (bir necha millisekundlarda) dastur faol dastur (ya'ni, oldingi planda) sifatida o'chib ketishini bildiradi. Bu, masalan, ilovadan foydalanganda qo'ng'iroqni qabul qilishda sodir bo'ladi, lekin shu bilan birga, bu usul dastur fonga o'tishdan oldin ham ushbu holatni keltirib chiqaradi, shuning uchun siz ushbu o'zgarishlarni hisobga olishingiz kerak. Ushbu usul, masalan, kiruvchi qo'ng'iroq bo'lganda, u amalga oshirayotgan barcha harakatlarni to'xtatib turishi va qo'ng'iroqning oxirigacha kutishi uchun ham mos keladi.

2. applicationDidEnterBackground

Vaziyat ilova fonga o'tganligini bildiradi. Ishlab chiquvchilar bu usuldan fonda ishlashi shart boʻlmagan barcha jarayonlarni toʻxtatib turish va foydalanilmagan maʼlumotlar xotirasini va boshqa jarayonlarni tozalash uchun foydalanishi kerak, masalan, taymerlar muddati tugashi, yuklangan rasmlarni xotiradan zarur boʻlmagan xotiradan tozalash yoki yopish. serverlar bilan ulanishlar, agar ilova fonda ulanishni yakunlashi muhim bo'lmasa. Usul ilovada chaqirilganda, u asosan dasturni to'liq to'xtatib turish uchun ishlatilishi kerak, agar uning bir qismi fonda ishlashi talab qilinmasa.

3. applicationWillEnterForeground

Bu holat birinchi holatga qarama-qarshi bo'lib, bu erda dastur faol holatga o'tadi. Holat shunchaki uyqu ilovasi fonda davom etishini va keyingi bir necha millisekundlarda oldingi planda paydo bo'lishini anglatadi. Dasturchilar ushbu usuldan dastur fonda bo'lgan paytda nofaol bo'lgan jarayonlarni davom ettirish uchun foydalanishlari kerak. Serverlarga ulanish qayta o'rnatilishi, taymerlarni qayta o'rnatish, xotiraga rasmlar va ma'lumotlar yuklanishi va boshqa kerakli jarayonlar foydalanuvchi yuklangan ilovani qayta ko'rishdan oldin davom etishi kerak.

4. applicationDidBecomeActive

Vaziyat, dastur oldingi o'ringa tiklangandan so'ng faollashganini bildiradi. Bu foydalanuvchi interfeysiga qo'shimcha o'zgartirishlar kiritish yoki UI ni asl holatiga qaytarish va hokazolar uchun ishlatilishi mumkin bo'lgan usuldir. Bu aslida foydalanuvchi dasturni displeyda ko'rgan paytda sodir bo'ladi, shuning uchun uni bu va oldingi usulda nima sodir bo'lishini ehtiyotkorlik bilan aniqlang. Ular bir necha millisekundlik farq bilan birin-ketin chaqiriladi.

5. ilova tugaydi

Bu holat dastur chiqishidan bir necha millisekund oldin, ya'ni dastur amalda tugashidan oldin sodir bo'ladi. Ko'p vazifani qo'lda yoki qurilmani o'chirishda. Usul qayta ishlangan ma'lumotlarni saqlash, barcha harakatlarni tugatish va endi kerak bo'lmaydigan ma'lumotlarni o'chirish uchun ishlatilishi kerak.

6. applicationDidReceiveMemoryWarning

Bu eng ko'p muhokama qilinadigan oxirgi holat. Agar kerak bo'lsa, u tizim resurslaridan keraksiz foydalansa, dasturni iOS xotirasidan olib tashlash uchun javobgardir. Men iOS-ning fon ilovalari bilan nima qilishini aniq bilmayman, lekin agar unga boshqa jarayonlarga resurslarni chiqarish uchun ilova kerak bo'lsa, u xotirada mavjud bo'lgan resurslarni chiqarishni taklif qiladi. Shunday qilib, bu usul ilovada chaqiriladi. Ishlab chiquvchilar uni dastur o'zi ajratgan xotiradan voz kechishi, bajarilayotgan hamma narsani saqlab qolishi, keraksiz ma'lumotlarni xotiradan tozalashi va aks holda xotirani etarli darajada bo'shatishi uchun amalga oshirishi kerak. To'g'ri, ko'plab ishlab chiquvchilar, hatto yangi boshlanuvchilar ham bunday narsalarni o'ylamaydilar yoki tushunmaydilar, keyin ularning ilovasi batareyaning ishlash muddatiga tahdid solishi va/yoki hatto fonda ham tizim resurslarini keraksiz iste'mol qilishi mumkin.

Hukm

Ushbu oltita holat va ular bilan bog'liq usullar iOS-dagi barcha "ko'p vazifalar" ning fonidir. Bu ajoyib tizim, chunki ishlab chiquvchilar dastur o'z foydalanuvchilarining qurilmalarida nima paydo bo'lishi, agar ular minimallashtirilsa yoki tizimdan ogohlantirishlar olishi va hokazolar uchun javobgar bo'lish zarurligini e'tiborsiz qoldirmasa.

Manba: macworld.com

Mualliflar: Yakub Pojarek, Martin Dubek (ArnieX)

 
Sizda ham hal qiladigan muammo bormi? Sizga maslahat kerakmi yoki ehtimol to'g'ri dasturni topasizmi? Bo'limdagi forma orqali biz bilan bog'lanishdan tortinmang Maslahat berish, keyingi safar savolingizga javob beramiz.

.