Uždaryti skelbimą

Vis dar yra daug žmonių, kurie nežino, kaip „iOS“ veikia daugiafunkcinis darbas. Tačiau pirmiausia reikia pažymėti, kad tai nėra tikras daugiafunkcinis darbas, o labai protingas sprendimas, neapkraunantis nei sistemos, nei vartotojo.

Dažnai galima išgirsti prietarų, kad iOS fone veikiančios programėlės užpildo operacinę atmintį, o tai lemia sistemos sulėtėjimą ir akumuliatoriaus veikimo laiką, todėl vartotojas turėtų jas išjungti rankiniu būdu. Daugiafunkcinių užduočių juostoje iš tikrųjų nėra visų veikiančių foninių procesų sąrašo, o tik naujausios paleistos programos. Taigi vartotojui nereikia jaudintis dėl procesų, veikiančių fone, išskyrus kelis atvejus. Paspaudus „Home“ mygtuką, aplikacija dažniausiai išsijungia arba užsidaro, todėl nebekrauna nei procesoriaus, nei baterijos ir, jei reikia, atlaisvina reikiamos atminties.

Taigi tai nėra visavertis kelių užduočių atlikimas, kai veikia dešimtys procesų.Priekyje visada veikia tik viena programa, kuri prireikus pristabdoma arba visiškai išjungiama. Tik keli antriniai procesai veikia fone. Štai kodėl retai susidursite su programos gedimu iOS sistemoje, pavyzdžiui, Android yra perpildytas veikiančių programų, kuriomis vartotojas turi pasirūpinti. Viena vertus, dėl to darbas su įrenginiu yra nemalonus, kita vertus, tai sukelia, pavyzdžiui, lėtą paleidimą ir perėjimą tarp programų.

Programos vykdymo tipas

Programa jūsų iOS įrenginyje yra vienoje iš šių 5 būsenų:

  • Bėga: programa paleidžiama ir veikia pirmame plane
  • Fonas: jis vis dar veikia, bet veikia fone (galime naudoti kitas programas)
  • Sustabdytas: Vis dar naudoja RAM, bet neveikia
  • Neaktyvus: programa veikia, bet netiesioginės komandos (pavyzdžiui, kai užrakinate įrenginį, kai programa veikia)
  • Neveikia: Paraiška nutraukta arba nepradėta

Sumišimas kyla, kai programa veikia fone, kad netrukdytų. Kai paspausite pradžios mygtuką arba gestą uždarysite programą (iPad), programa pereina į foną. Daugelis programų sustabdomos per kelias sekundes (jos saugomos „iDevice“ operatyviojoje atmintyje, kad jas būtų galima greitai paleisti, jos taip neapkrauna procesoriaus ir taip taupo baterijos veikimo laiką) Galite pamanyti, kad jei programa ir toliau naudos atmintį, rankiniu būdu ištrinti, kad atlaisvintumėte . Bet jūs neprivalote to daryti, nes „iOS“ tai padarys už jus. Jei fone laikinai sustabdyta sudėtinga programa, pvz., žaidimas, kuris naudoja daug RAM, „iOS“ automatiškai pašalins ją iš atminties, kai reikės, ir galite ją paleisti iš naujo paliesdami programos piktogramą.

Nė viena iš šių būsenų neatsispindi kelių užduočių juostoje, skydelyje rodomas tik neseniai paleistų programų sąrašas, neatsižvelgiant į tai, ar programa sustabdyta, pristabdyta ar veikia fone. Taip pat galite pastebėti, kad šiuo metu veikianti programa nerodoma kelių užduočių skydelyje

Fono užduotys

Įprastai paspaudus mygtuką „Pagrindinis“ programa veiks fone, o jei jos nenaudojate, per penkias sekundes automatiškai pristabdys. Taigi, jei, pavyzdžiui, atsisiunčiate podcast'ą, sistema įvertina ją kaip veikiančią programą ir atideda nutraukimą dešimčia minučių. Vėliausiai po dešimties minučių procesas pašalinamas iš atminties. Trumpai tariant, jums nereikia jaudintis dėl atsisiuntimo nutraukimo paspausdami pagrindinio puslapio mygtuką, jei tai neužtrunka ilgiau nei 10 minučių.

Neribotas veikimas fone

Neaktyvumo atveju sistema nutraukia aplikaciją per penkias sekundes, o atsisiuntimų atveju nutraukimas atidėtas dešimčiai minučių. Tačiau yra nedaug programų, kurias reikia veikti fone. Štai keletas programų, kurios gali neribotą laiką veikti fone iOS 5, pavyzdžiai:

  • Programos, kurios groja garsą ir kurias reikia kuriam laikui pertraukti (muzikos pristabdymas pokalbio metu ir pan.),
  • Programos, kurios seka jūsų buvimo vietą (navigacijos programinė įranga),
  • Programos, priimančios VoIP skambučius, pavyzdžiui, jei naudojate „Skype“, galite priimti skambučius net tada, kai programa veikia fone,
  • Automatiniai atsisiuntimai (pvz., Kioskas).

Visos programos turėtų būti uždarytos, jei jos nebeatlieka užduoties (pvz., atsisiunčiamos fone). Tačiau yra išimčių, kurios nuolat veikia fone, pvz., vietinė pašto programa. Jei jie veikia fone, jie užima atmintį, procesoriaus naudojimą arba sumažina akumuliatoriaus veikimo laiką

Programos, kurioms leidžiama neribotą laiką veikti fone, gali daryti bet ką, ką daro veikdamos – nuo ​​muzikos leidimo iki naujų podcast epizodų atsisiuntimo.

Kaip jau minėjau anksčiau, vartotojui niekada nereikia uždaryti fone veikiančių programų. Vienintelė išimtis yra tada, kai fone veikianti programa užstringa arba tinkamai nepabunda iš miego. Tada vartotojas gali uždaryti programas rankiniu būdu kelių užduočių juostoje, tačiau taip nutinka retai.

Taigi, apskritai, jums nereikia valdyti foninių procesų, nes sistema jais pasirūpins pati. Štai kodėl „iOS“ yra tokia nauja ir greita sistema.

Iš kūrėjo perspektyvos

Programa gali reaguoti su šešiomis skirtingomis būsenomis kaip kelių užduočių dalis:

1. ApplicationWillResignActive

Išvertus ši būsena reiškia, kad programa ateityje (po kelių milisekundžių) atsisakys aktyvios programos (ty priekinio plano programos). Taip atsitinka, pavyzdžiui, kai sulaukiama skambučio naudojant programą, tačiau tuo pačiu metu šis metodas taip pat sukelia šią būseną prieš programai pereinant į foną, todėl reikia atsižvelgti į šiuos pakeitimus. Šis metodas taip pat tinkamas, kad, pavyzdžiui, sustabdytų visas savo atliekamas veiklas, kai yra įeinantis skambutis, ir laukiama iki skambučio pabaigos.

2. applicationDidEnterBackground

Būsena rodo, kad programa perėjo į foną. Kūrėjai turėtų naudoti šį metodą norėdami sustabdyti visus procesus, kurie nebūtinai turi veikti fone, ir išvalyti nenaudojamų duomenų bei kitų procesų atmintį, pvz., besibaigiančius laikmačius, išvalyti įkeltus vaizdus iš atminties, kurių nebūtinai reikės, arba uždaryti. ryšiams su serveriais, nebent programai labai svarbu užbaigti ryšius fone. Kai metodas iškviečiamas programoje, jis iš esmės turėtų būti naudojamas visiškai sustabdyti programą, jei kai kurios jos dalies nereikia veikti fone.

3. ApplicationWillEnterForeground

Ši būsena yra priešinga pirmajai būsenai, kai programa atsistatys į aktyvią būseną. Būsena tiesiog reiškia, kad miego programa bus atnaujinta fone ir per kelias ateinančias milisekundes pasirodys priekiniame plane. kūrėjai turėtų naudoti šį metodą, kad atnaujintų visus procesus, kurie buvo neaktyvūs, kol programa veikė fone. Ryšiai su serveriais turi būti atstatyti, laikmačiai nustatyti iš naujo, vaizdai ir duomenys įkelti į atmintį, o kiti būtini procesai gali būti atnaujinti prieš pat vartotojui vėl pamatant įkeltą programą.

4. ApplicationDidBecomeActive

Būsena nurodo, kad programa ką tik suaktyvėjo po to, kai buvo atkurta į pirmą planą. Tai metodas, kurį galima naudoti norint atlikti papildomus vartotojo sąsajos koregavimus arba atkurti vartotojo sąsają į pradinę būseną ir pan. Tai iš tikrųjų atsitinka tuo metu, kai vartotojas jau mato programą ekrane, todėl būtina atsargiai nustatykite, kas vyksta naudojant šį ir ankstesnį metodą. Jie vadinami vienas po kito su kelių milisekundžių skirtumu.

5. ApplicationWillTerminate

Ši būsena įvyksta likus kelioms milisekundėms iki programos išėjimo, ty prieš tai, kai programa iš tikrųjų baigiasi. Rankiniu būdu iš kelių užduočių arba išjungiant įrenginį. Šis metodas turėtų būti naudojamas apdorotiems duomenims išsaugoti, visai veiklai užbaigti ir nebereikalingiems duomenims ištrinti.

6. ApplicationDidReceiveMemoryWarning

Apie paskutinę būseną daugiausia diskutuojama. Ji yra atsakinga už, jei reikia, programos pašalinimą iš iOS atminties, jei ji be reikalo naudoja sistemos išteklius. Nežinau, ką konkrečiai „iOS“ veikia su foninėmis programomis, bet jei jai reikia programos, kad būtų išleisti ištekliai kitiems procesams, ji paragins ją su atminties įspėjimu išleisti visus turimus išteklius. Taigi šis metodas vadinamas programoje. Kūrėjai turėtų tai įdiegti taip, kad programa atsisakytų jai skirtos atminties, išsaugotų viską, kas vyksta, iš atminties išvalytų nereikalingus duomenis ir šiaip adekvačiai atlaisvintų atmintį. Tiesa, daugelis kūrėjų, net ir pradedantieji, apie tokius dalykus negalvoja ir nesupranta, o tada gali atsitikti taip, kad jų aplikacija kelia grėsmę baterijos tarnavimo laikui ir/arba be reikalo eikvoja sistemos resursus net fone.

Nuosprendis

Šios šešios būsenos ir su jomis susiję metodai yra visų „iOS“ daugiafunkcinių užduočių pagrindas. tai puiki sistema, jei tik kūrėjai neignoruoja fakto, kad reikia būti atsakingam už tai, ką aplikacija išmeta vartotojų įrenginiuose, jei jos yra sumažintos arba sulaukia įspėjimų iš sistemos ir pan.

Šaltinis: „Macworld.com“

Autoriai: Jakubas Požarekas, Martinas Doubekas (ArnieX)

 
Ar jūs taip pat turite išspręsti problemą? Reikia patarimo, o gal rasti tinkamą pritaikymą? Nedvejodami susisiekite su mumis naudodami skiltyje esančią formą Konsultavimas, kitą kartą atsakysime į jūsų klausimą.

.