Mbyll reklamën

Ka ende shumë njerëz që nuk e dinë se si funksionon multitasking në iOS. Për të filluar, megjithatë, është e nevojshme të theksohet se ky nuk është një multitasking i vërtetë, por një zgjidhje shumë e zgjuar që nuk e rëndon sistemin apo përdoruesit.

Shpesh mund të dëgjohen besëtytnitë se aplikacionet që funksionojnë në sfond në iOS mbushin memorien e funksionimit, gjë që çon në ngadalësim të sistemit dhe jetëgjatësi të baterisë, kështu që përdoruesi duhet t'i fikë ato manualisht. Shiriti i shumë detyrave në fakt nuk përmban një listë të të gjitha proceseve në sfond të ekzekutimit, por vetëm aplikacionet e lançuara së fundi. Pra, përdoruesi nuk duhet të shqetësohet për proceset që funksionojnë në sfond, përveç në disa raste. Kur shtypni butonin Home, aplikacioni zakonisht shkon në gjumë ose mbyllet, në mënyrë që të mos ngarkojë më procesorin ose baterinë dhe të çlirojë memorien e nevojshme nëse është e nevojshme.

Pra, ky nuk është një multitasking i plotë kur keni dhjetëra procese që funksionojnë vetëm një aplikacion është gjithmonë në plan të parë, i cili ndalet ose fiket plotësisht nëse është e nevojshme. Vetëm disa procese dytësore ekzekutohen në sfond. Kjo është arsyeja pse rrallë do të hasni në një dështim të aplikacionit në iOS, për shembull Android është i stërmbushur me aplikacione të ekzekutuara për të cilat përdoruesi duhet të kujdeset. Nga njëra anë, kjo e bën punën me pajisjen të pakëndshme, dhe nga ana tjetër, shkakton, për shembull, fillimin e ngadaltë dhe kalimet midis aplikacioneve.

Lloji i kohës së ekzekutimit të aplikacionit

Aplikacioni në pajisjen tuaj iOS është në një nga këto 5 gjendje:

  • Vrapimi: aplikacioni niset dhe funksionon në plan të parë
  • Sfondi: është ende në punë, por funksionon në sfond (mund të përdorim aplikacione të tjera)
  • Pezulluar: Ende përdor RAM, por nuk funksionon
  • Joaktiv: aplikacioni po funksionon por komanda indirekte (për shembull, kur bllokoni pajisjen me aplikacionin në punë)
  • Nuk funksionon: Aplikimi ka përfunduar ose nuk ka filluar

Konfuzioni vjen kur aplikacioni shkon në sfond në mënyrë që të mos shqetësojë. Kur shtypni butonin Home ose përdorni gjestin për të mbyllur aplikacionin (iPad), aplikacioni shkon në sfond. Shumica e aplikacioneve pezullohen brenda disa sekondave (ato ruhen në RAM-in e iDevice në mënyrë që të mund të lansohen shpejt, ata nuk e ngarkojnë aq shumë procesorin dhe kështu kursejnë jetëgjatësinë e baterisë) Ju mund të mendoni se nëse një aplikacion vazhdon të përdorë memorien, ju keni për ta fshirë manualisht për ta çliruar. Por ju nuk duhet ta bëni këtë, sepse iOS do ta bëjë atë për ju. Nëse keni një aplikacion kërkues të pezulluar në sfond, si për shembull një lojë që përdor një sasi të madhe RAM, iOS do ta heqë atë automatikisht nga memoria kur është e nevojshme dhe mund ta rinisni duke trokitur ikonën e aplikacionit.

Asnjë nga këto gjendje nuk pasqyrohet në shiritin e shumë detyrave, paneli tregon vetëm një listë të aplikacioneve të lançuara së fundi, pavarësisht nëse aplikacioni është i ndaluar, në pauzë ose nëse funksionon në sfond. Ju gjithashtu mund të vini re se aplikacioni që po ekzekutohet aktualisht nuk shfaqet në panelin Multitasking

Detyrat e sfondit

Normalisht, kur shtypni butonin Home, aplikacioni do të funksionojë në sfond dhe nëse nuk e përdorni, automatikisht do të pushojë brenda pesë sekondave. Pra, nëse jeni duke shkarkuar një podcast, për shembull, sistemi e vlerëson atë si një aplikacion që funksionon dhe e vonon përfundimin me dhjetë minuta. Më së voni pas dhjetë minutash, procesi lirohet nga kujtesa. Me pak fjalë, nuk keni pse të shqetësoheni për ndërprerjen e shkarkimit duke shtypur butonin Home, nëse nuk duhen më shumë se 10 minuta për ta përfunduar atë.

Vrapim i pacaktuar në sfond

Në rast mosaktiviteti, sistemi e mbyll aplikacionin brenda pesë sekondave, dhe në rastin e shkarkimeve, ndërprerja vonohet për dhjetë minuta. Megjithatë, ka një numër të vogël aplikacionesh që kërkojnë ekzekutimin në sfond. Këtu janë disa shembuj të aplikacioneve që mund të funksionojnë në sfond për një kohë të pacaktuar në iOS 5:

  • Aplikacionet që luajnë zë dhe duhet të ndërpriten për një kohë (ndërprerja e muzikës gjatë një telefonate, etj.),
  • Aplikacionet që gjurmojnë vendndodhjen tuaj (softuer navigimi),
  • Aplikacionet që marrin telefonata VoIP, për shembull nëse përdorni Skype, mund të merrni një telefonatë edhe kur aplikacioni është në sfond,
  • Shkarkime automatike (p.sh. stendën e gazetave).

Të gjitha aplikacionet duhet të mbyllen nëse nuk po kryejnë më një detyrë (siç janë shkarkimet në sfond). Megjithatë, ka përjashtime që funksionojnë vazhdimisht në sfond, siç është aplikacioni origjinal Mail. Nëse funksionojnë në sfond, ata marrin memorie, përdorimin e CPU-së ose reduktojnë jetëgjatësinë e baterisë

Aplikacionet që lejohen të funksionojnë në sfond për një kohë të pacaktuar mund të bëjnë gjithçka që bëjnë gjatë ekzekutimit, nga luajtja e muzikës deri te shkarkimi i episodeve të reja të Podcast-it.

Siç e përmenda më parë, përdoruesi nuk ka nevojë të mbyllë kurrë aplikacionet që funksionojnë në sfond. Përjashtimi i vetëm nga kjo është kur një aplikacion që funksionon në sfond rrëzohet ose nuk zgjohet nga gjumi siç duhet. Përdoruesi më pas mund t'i mbyllë aplikacionet manualisht në shiritin e shumë detyrave, por kjo ndodh rrallë.

Pra, në përgjithësi, nuk keni nevojë të menaxhoni proceset e sfondit, sepse sistemi do të kujdeset vetë për to. Kjo është arsyeja pse iOS është një sistem kaq i freskët dhe i shpejtë.

Nga këndvështrimi i një zhvilluesi

Aplikacioni mund të reagojë me gjithsej gjashtë gjendje të ndryshme si pjesë e multitasking:

1. aplikacioniWillResignActive

Në përkthim, kjo gjendje do të thotë që aplikacioni do të japë dorëheqjen si aplikacion aktiv (d.m.th., aplikacioni në plan të parë) në të ardhmen (çështje për disa milisekonda). Kjo ndodh, për shembull, kur merrni një telefonatë gjatë përdorimit të aplikacionit, por në të njëjtën kohë, kjo metodë shkakton edhe këtë gjendje përpara se aplikacioni të shkojë në sfond, kështu që ju duhet të merrni parasysh këto ndryshime. Kjo metodë është gjithashtu e përshtatshme që, për shembull, të pezullojë të gjitha aktivitetet që kryen kur ka një telefonatë hyrëse dhe të presë deri në fund të telefonatës.

2. applicationDidEnterBackground

Statusi tregon që aplikacioni ka kaluar në sfond. Zhvilluesit duhet ta përdorin këtë metodë për të pezulluar të gjitha proceset që nuk kanë nevojë domosdoshmërisht të ekzekutohen në sfond dhe për të pastruar memorien e të dhënave të papërdorura dhe proceseve të tjera, të tilla si kohëmatësit që skadojnë, pastrojnë imazhet e ngarkuara nga memorja që nuk do të nevojiten domosdoshmërisht, ose mbyllja lidhjet me serverët, përveç nëse është kritike që aplikacioni të përfundojë lidhjet në sfond. Kur metoda thirret në aplikacion, në thelb duhet të përdoret për të pezulluar plotësisht aplikacionin nëse një pjesë e tij nuk kërkohet të ekzekutohet në sfond.

3. aplikacioniWillEnterForeground

Kjo gjendje është e kundërta e gjendjes së parë, ku aplikacioni do të japë dorëheqjen në gjendjen aktive. Gjendja thjesht do të thotë që aplikacioni i gjumit do të rifillojë nga sfondi dhe do të shfaqet në plan të parë brenda disa milisekondave të ardhshme. zhvilluesit duhet të përdorin këtë metodë për të rifilluar çdo proces që ishte joaktiv ndërsa aplikacioni ishte në sfond. Lidhjet me serverët duhet të rivendosen, kohëmatësit të rivendosen, imazhet dhe të dhënat të ngarkohen në memorie dhe proceset e tjera të nevojshme mund të rifillojnë pak përpara se përdoruesi të shohë përsëri aplikacionin e ngarkuar.

4. aplikacioniDidBecomeActive

Gjendja tregon se aplikacioni sapo është aktivizuar pasi është rikthyer në plan të parë. Kjo është një metodë që mund të përdoret për të bërë rregullime shtesë në ndërfaqen e përdoruesit ose për të rikthyer UI në gjendjen e tij origjinale, etj. Kjo në fakt ndodh në momentin kur përdoruesi tashmë e sheh aplikacionin në ekran, kështu që është e nevojshme të përcaktoni me kujdes se çfarë ndodh në metodën e kësaj dhe në metodën e mëparshme. Ata thirren njëri pas tjetrit me një ndryshim prej disa milisekonda.

5. aplikacioni do të përfundojë

Kjo gjendje ndodh disa milisekonda përpara se aplikacioni të dalë, domethënë përpara se aplikacioni të përfundojë në të vërtetë. Ose manualisht nga kryerja e shumë detyrave ose kur fikni pajisjen. Metoda duhet të përdoret për të ruajtur të dhënat e përpunuara, për të përfunduar të gjitha aktivitetet dhe për të fshirë të dhënat që nuk do të nevojiten më.

6. applicationDidReceiveMemoryWarning

Është shteti i fundit që është më i diskutuari. Ai është përgjegjës për heqjen e aplikacionit nga memoria iOS nëse është e nevojshme nëse përdor burimet e sistemit në mënyrë të panevojshme. Nuk e di konkretisht se çfarë bën iOS me aplikacionet në sfond, por nëse i duhet një aplikacion për të lëshuar burime në procese të tjera, ai e bën atë me një paralajmërim memorie për të lëshuar çfarëdo burimi që ka. Pra, kjo metodë quhet në aplikacion. Zhvilluesit duhet ta zbatojnë atë në mënyrë që aplikacioni të heqë dorë nga memoria që ka ndarë, të ruajë gjithçka në zhvillim, të pastrojë të dhënat e panevojshme nga memorja dhe përndryshe të çlirojë në mënyrë adekuate memorien. Është e vërtetë që shumë zhvillues, madje edhe fillestarë, nuk mendojnë apo kuptojnë gjëra të tilla dhe më pas mund të ndodhë që aplikacioni i tyre të kërcënojë jetëgjatësinë e baterisë dhe/ose të konsumojë në mënyrë të panevojshme burimet e sistemit, qoftë edhe në sfond.

Verdikti

Këto gjashtë gjendje dhe metodat e tyre shoqëruese janë sfondi i të gjitha "multitasking" në iOS. është një sistem i shkëlqyeshëm, për sa kohë që zhvilluesit nuk e injorojnë faktin që ka nevojë të jenë përgjegjës për atë që aplikacioni hedh në pajisjet e përdoruesve të tyre, nëse ato minimizohen ose marrin paralajmërime nga sistemi etj.

burimi: macworld.com

Autorët: Jakub Požárek, Martin Doubek (ArnieX)

 
Keni edhe ju një problem për të zgjidhur? Keni nevojë për këshilla apo ndoshta gjeni aplikacionin e duhur? Mos hezitoni të na kontaktoni përmes formularit në seksion Këshillim, herën tjetër do t'i përgjigjemi pyetjes suaj.

.