Lokaðu auglýsingu

Það er enn fullt af fólki sem veit ekki hvernig fjölverkavinnsla virkar í iOS. Til að byrja með er þó nauðsynlegt að benda á að þetta er ekki alvöru fjölverkavinnsla heldur mjög snjöll lausn sem íþyngir ekki kerfinu eða notandanum.

Oft heyrist hjátrú á því að forrit sem keyra í bakgrunni í iOS fylli upp í rekstrarminnið, sem leiðir til hægfara kerfis og endingartíma rafhlöðunnar, svo notandinn ætti að slökkva á þeim handvirkt. Fjölverkastikan inniheldur í raun ekki lista yfir öll keyrandi bakgrunnsferli, heldur aðeins nýlega opnuð forrit. Þannig að notandinn þarf ekki að hafa áhyggjur af ferlum sem keyra í bakgrunni nema í nokkrum tilvikum. Þegar þú ýtir á Home hnappinn fer forritið venjulega í dvala eða lokar þannig að það hleður ekki lengur örgjörva eða rafhlöðu og losar, ef nauðsyn krefur, nauðsynlegt minni.

Þannig að þetta er ekki fullgild fjölverkavinnsla þegar þú ert með heilmikið af ferlum í gangi. Aðeins eitt forrit er alltaf í gangi í forgrunni, sem er gert hlé á eða slökkt alveg á því ef þörf krefur. Aðeins nokkur aukaferli keyra í bakgrunni. Þess vegna muntu sjaldan lenda í hrun á forritum á iOS, til dæmis er Android yfirfullt af keyrandi forritum sem notandinn þarf að sjá um. Annars vegar gerir þetta vinnu við tækið óþægilega og hins vegar veldur það til dæmis hægri ræsingu og skiptum á milli forrita.

Tegund keyrslutíma forrits

Forritið á iOS tækinu þínu er í einu af þessum 5 stöðum:

  • Í gangi: forritið er ræst og keyrt í forgrunni
  • Bakgrunnur: það er enn í gangi en keyrir í bakgrunni (við getum notað önnur forrit)
  • Frestað: Notar enn vinnsluminni en er ekki í gangi
  • Óvirkt: forritið er í gangi en óbeinar skipanir (til dæmis þegar þú læsir tækinu með forritið í gangi)
  • Ekki í gangi: Umsókn er hætt eða hefur ekki hafist

Ruglið kemur þegar appið fer í bakgrunninn til að trufla ekki. Þegar þú ýtir á heimahnappinn eða notar bendinguna til að loka forritinu (iPad) fer forritið í bakgrunninn. Flest öpp eru stöðvuð innan nokkurra sekúndna (þau eru geymd í vinnsluminni iDevice svo hægt sé að ræsa þau fljótt, þau hlaða örgjörvanum ekki eins mikið og spara þannig endingu rafhlöðunnar) Þú gætir haldið að ef app heldur áfram að nota minni, þá hefur þú til að eyða því handvirkt til að losa um það. En þú þarft ekki að gera það, því iOS mun gera það fyrir þig. Ef þú ert með krefjandi forrit í biðstöðu í bakgrunni, eins og leik sem notar mikið af vinnsluminni, mun iOS fjarlægja það sjálfkrafa úr minni þegar þörf krefur og þú getur endurræst það með því að ýta á forritatáknið.

Ekkert þessara staða endurspeglast á fjölverkastikunni, spjaldið sýnir aðeins lista yfir nýlega opnuð forrit, óháð því hvort forritið er stöðvað, gert hlé eða keyrt í bakgrunni. Þú gætir líka tekið eftir því að forritið sem er í gangi birtist ekki á fjölverkavinnsluspjaldinu

Bakgrunnsverkefni

Venjulega, þegar þú ýtir á heimahnappinn, mun forritið keyra í bakgrunni og ef þú ert ekki að nota það mun það sjálfkrafa gera hlé innan fimm sekúndna. Þannig að ef þú ert að hlaða niður podcast, til dæmis, metur kerfið það sem keyrt forrit og seinkar lokuninni um tíu mínútur. Eftir tíu mínútur í síðasta lagi er ferlið losað úr minni. Í stuttu máli, þú þarft ekki að hafa áhyggjur af því að trufla niðurhalið með því að ýta á heimahnappinn, ef það tekur ekki meira en 10 mínútur að klára það.

Ótímabundið í gangi í bakgrunni

Ef um er að ræða aðgerðaleysi lokar kerfið forritinu innan fimm sekúndna og ef um niðurhal er að ræða seinkar lokun um tíu mínútur. Hins vegar er lítill fjöldi forrita sem þurfa að keyra í bakgrunni. Hér eru nokkur dæmi um forrit sem geta keyrt í bakgrunni endalaust í iOS 5:

  • Forrit sem spila hljóð og verður að trufla um stund (gera hlé á tónlist í símtali o.s.frv.),
  • Forrit sem rekja staðsetningu þína (leiðsöguhugbúnaður),
  • Forrit sem taka á móti VoIP símtölum, til dæmis ef þú notar Skype, geturðu fengið símtal jafnvel þegar forritið er í bakgrunni,
  • Sjálfvirk niðurhal (td Newsstand).

Öllum forritum ætti að loka ef þau eru ekki lengur að framkvæma verkefni (eins og bakgrunnsniðurhal). Hins vegar eru undantekningar sem keyra stöðugt í bakgrunni, eins og innfædda Mail appið. Ef þeir eru í gangi í bakgrunni taka þeir upp minni, örgjörvanotkun eða draga úr endingu rafhlöðunnar

Forrit sem hafa leyfi til að keyra í bakgrunni endalaust geta gert allt sem þau gera á meðan þau eru í gangi, allt frá því að spila tónlist til að hlaða niður nýjum Podcast þáttum.

Eins og ég nefndi áður þarf notandinn aldrei að loka forritunum sem keyra í bakgrunni. Eina undantekningin frá þessu er þegar forrit sem keyrir í bakgrunni hrynur eða vaknar ekki almennilega af svefni. Notandinn getur síðan lokað forritunum handvirkt á fjölverkastikunni, en það gerist sjaldan.

Svo almennt þarftu ekki að stjórna bakgrunnsferlum því kerfið sér um þá sjálft. Þess vegna er iOS svo ferskt og hratt kerfi.

Frá sjónarhóli þróunaraðila

Forritið getur brugðist við með alls sex mismunandi ríkjum sem hluti af fjölverkavinnsla:

1. applicationWillResignActive

Í þýðingu þýðir þetta ástand að umsóknin hættir sem virka umsóknin (þ.e. umsóknin í forgrunni) í framtíðinni (spurning um nokkrar millisekúndur). Þetta gerist til dæmis þegar hringt er á meðan forritið er notað, en á sama tíma veldur þessi aðferð líka þessu ástandi áður en forritið fer í bakgrunninn, svo þú þarft að taka tillit til þessara breytinga. Þessi aðferð hentar líka þannig að hún stöðvar til dæmis allar aðgerðir sem hún er að framkvæma þegar hringt er og bíður þar til símtalinu lýkur.

2. applicationDidEnterBackground

Staðan gefur til kynna að forritið hafi farið í bakgrunninn. Hönnuðir ættu að nota þessa aðferð til að fresta öllum ferlum sem þurfa ekki endilega að keyra í bakgrunni og hreinsa minni af ónotuðum gögnum og öðrum ferlum, svo sem tímamælum sem renna út, hreinsa hlaðnar myndir úr minni sem ekki er endilega þörf á, eða loka tengingar við netþjóna, nema það sé mikilvægt fyrir forritið að klára tengingar í bakgrunni. Þegar aðferðin er kölluð fram í forriti ætti hún í meginatriðum að vera notuð til að stöðva forritið algjörlega ef einhver hluti þess þarf ekki að keyra í bakgrunni.

3. applicationWillEnterForeground

Þetta ástand er andstæða fyrsta ríksins, þar sem umsóknin mun segja sig úr virka ríkinu. Ríkið þýðir einfaldlega að svefnforritið mun hefjast aftur úr bakgrunni og birtast í forgrunni á næstu millisekúndum. forritarar ættu að nota þessa aðferð til að halda áfram öllum ferlum sem voru óvirkir á meðan forritið var í bakgrunni. Tengingar við netþjóna ættu að vera endurkomnar, tímastillir endurstilla, myndir og gögn hlaðið inn í minni og önnur nauðsynleg ferli geta hafist aftur rétt áður en notandinn sér hlaðið forritið aftur.

4. Umsókn Gerðist Virkur

Ríkið gefur til kynna að forritið sé nýlega orðið virkt eftir að hafa verið sett aftur í forgrunninn. Þetta er aðferð sem hægt er að nota til að gera frekari lagfæringar á notendaviðmótinu eða til að koma notendaviðmótinu aftur í upprunalegt ástand o.s.frv. Þetta gerist í raun á því augnabliki sem notandinn sér forritið þegar á skjánum, svo það er nauðsynlegt að ákvarða með varúð hvað gerist í aðferð þessarar og í fyrri aðferð. Þeir eru kallaðir hver á eftir öðrum með nokkrum millisekúndum mun.

5. applicationWillTerminate

Þetta ástand gerist nokkrum millisekúndum áður en forritið hættir, það er áður en forritinu lýkur í raun. Annað hvort handvirkt úr fjölverkavinnsla eða þegar slökkt er á tækinu. Aðferðina ætti að nota til að vista unnin gögn, hætta allri starfsemi og eyða gögnum sem ekki er lengur þörf á.

6. umsóknDidReceiveMemoryWarning

Það er síðasta ríkið sem mest er rætt um. Það er ábyrgt fyrir, ef nauðsyn krefur, að fjarlægja forritið úr iOS minni ef það notar kerfisauðlindir að óþörfu. Ég veit ekki sérstaklega hvað iOS gerir við bakgrunnsforrit, en ef það þarf forrit til að losa auðlindir í önnur ferli, hvetur það það með minnisviðvörun um að gefa út hvaða auðlind sem það hefur. Svo þessi aðferð er kölluð í forritinu. Hönnuðir ættu að innleiða það þannig að forritið afsalar sér minni sem það hefur úthlutað, visti allt sem er í vinnslu, hreinsar óþarfa gögn úr minni og losar að öðru leyti nægilega mikið um minni. Það er rétt að margir forritarar, jafnvel byrjendur, hugsa ekki um eða skilja slíkt og þá getur það gerst að forritið þeirra ógni endingu rafhlöðunnar og/eða eyðir kerfisauðlindum að óþörfu, jafnvel í bakgrunni.

Úrskurður

Þessi sex ríki og tengdar aðferðir þeirra eru bakgrunnur allrar „fjölverkavinnslu“ í iOS. þetta er frábært kerfi, svo framarlega sem forritarar hunsa ekki þá staðreynd að það þarf að bera ábyrgð á því hvað forritið kastar upp á tæki notenda sinna, hvort þau séu lágmarkuð eða fá viðvaranir frá kerfinu og svo framvegis.

Heimild: macworld.com

Höfundar: Jakub Požárek, Martin Doubek (ArnieX)

 
Áttu líka vandamál að leysa? Vantar þig ráðgjöf eða finnurðu kannski réttu forritið? Ekki hika við að hafa samband við okkur í gegnum formið í hlutanum Ráðgjöf, næst munum við svara spurningunni þinni.

.