Þ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.
Halló, virkilega flott grein, en ég velti því fyrir mér hvort þú hafir tæknilega aðstoð við hana. Vegna þess að ég hef leyst rafhlöðuna nokkrum sinnum á kvöldin áður en ég fór að sofa og það kom fyrir að þegar slökkt var á wifi og farsímagögnum tók það meira en í öðru tilfelli með slökkt á wifi og aðeins 3G.
Því miður er reynslan sú að í iOS þarf að slökkva á forritum handvirkt og kerfið gengur ekki lengur eins vel og áður.
Ég skipti út iPhone fyrir Windows Phone (Samsung Omnia W á 6200,-) og hraði kerfisins er á allt öðru stigi.
Ég er hræddur um að þegar Windows 8 Metro spjaldtölvurnar koma út muni ég líka skipta um iPad...
@007 – já, ef þú ert að bera saman gömlu iPhone3G við þá nýju WP, þá já (hver hefði búist við því?) verður WP töluvert hraðari. Annars fer slúðrið um Karlulka þér illa og það var við hæfi að bera saman núverandi HW. Ég keypti líka WP7 og endaði að lokum með 4s, sem táknar allt annað nothæfisstig en WP7. Svo farðu skemmtilega og endalaust flettu í gegnum flísarnar.
Ég er algjörlega sammála Paja
Ég myndi leggja mitt af mörkum aftur úr ruslinu af annarri tunnu - Samsung Galaxy S og iPhone 4 - ég myndi segja sambærilegt hvað varðar aldur? Á tímum iOS 4, og hvað varðar notagildi og hraða annars staðar en Android, hefur Apple leyst hugmyndina um að vinna með forrit mjög vel, en það sama á ekki lengur við með Android. Á endanum endaði ég samt með 4S og ég kvarta ekkert því "það virkar bara" .. og það virkar mjög fljótt!
Kenningin er falleg... En í reynd þá loka ég samt forritinu á barnum ;)
Takk, mjög áhugavert, raunhæft, áhugavert, það vantar ekki sveiflu og dýpt. Undirstrikar verulega þráhyggju ungmenna í dag fyrir þessu forboðna vörumerki! En takk fyrir hana, sem og þessa grein.
Greinin er algjörlega röng.
Forritið hættir ekki þegar ýtt er á heimahnappinn, eins og ranglega er sagt, heldur gerir hlé. Þ.e.a.s. örugglega ekki eyða úr minni og ekki hætta. Gerðu hlé á keyrslunni, iOS mun gefa þessu forriti 0% örgjörvatíma. Það "skipta" örugglega ekki neins staðar í iDevice minni, eins og segir í greininni. Það er í raun að þakka þeirri staðreynd að það er hægt að nota skipta um app.
Forritið er fjarlægt úr minninu þegar síminn hefur lítið minni til að keyra önnur forrit með hærri forgang (venjulega er annað forrit í gangi í forgrunni).
Í fyrra tilvikinu er það rétt hjá þér, þetta var þýðingarvilla. Varðandi skipti þá erum við ekki að tala um það hér, við erum að tala um rekstrarminni, ekki geymsluplássið í iOS tækinu.
myndin af forritinu er geymd í minni í takmarkaðan tíma þar til hún er kölluð upp aftur með skipun (sjá 13,7 GB af 16 GB: 2,3 GB eru frátekin fyrir kerfið og stöðvuð forrit)
Þess vegna er nauðsynlegt að greina á milli forrita eins og Navigation, Skype og þess háttar, þessi forrit haldast virk jafnvel í bakgrunni, eða ákveðin aðgerð lýkur ekki og heldur áfram, til dæmis, að senda gögn um staðsetningu hennar eða staðsetningarupplýsingar. Eða eins og Vokul í pord ham hlustaðu og fjölverkavinnsla er enn að hlusta í bakgrunni.
Þessi forrit tæma rafhlöðuna og það er nauðsynlegt að loka þeim handvirkt og ekki bíða eftir iOS. með öðrum er það ekki nauðsynlegt, þar aðeins ef forritið hrynur.
Ég get ekki verið sammála greininni. Min. á 1. kynslóð iPad (iOS 5.0.1) er greinilegt að sjá hvort ég sé með mörg "opin" öpp á fjölverkastikunni eða bara nokkur. iOS reynir að hreinsa minnið, en það er augljóslega ekki nóg - smæð vinnsluminni er líklega stærsti veikleiki þess.
þannig að mikið fer eftir kerfinu og vélbúnaðinum sem er notaður, það er alveg rökrétt að það verði verra á iPad 1 með iOS 5.0.1 en ef það væri á 2. kynslóð iPad
Fyrirgefðu félagi, þetta er lýsing á því hvernig það ætti að virka. Því miður er raunveruleikinn allt annar og þú myndir vita það ef þú notaðir Apple vörur, að minnsta kosti jafn mikið og ég (þ.e. af og til).
„Þú getur oft heyrt hjátrú um að forrit sem keyra í bakgrunni í iOS fylli upp í rekstrarminnið,“
Þetta er ekki hjátrú, þetta er bara staðreynd. Enda fullyrðir þú það sjálfur í greininni.
"Eins og ég nefndi áður þarf notandinn aldrei að loka forritunum sem keyra í bakgrunni."
BULL. Þetta er bara kjaftæði, eplaáróður, ekki reiðast mér.
„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ð.
Ekki satt. Staðan er aðeins önnur. Dæmigerð dæmi - ég er með krefjandi forrit í gangi í bakgrunni, ég þarf leiki. Ég opna vafrann, opna nokkra flipa -> þarf meira minni. Hvað mun gerast? Ég held áfram að krefjast forrita í bakgrunni, þvert á móti, VEFFRÆÐURINN SJÁLFUR FELLUR. Ef ég loka krefjandi forritunum handvirkt virkar vafrinn í langan tíma án vandræða.
Þetta er æfing, ekki kenning. Og ég er hissa á því, sem langtímanotandi Apple vöru, þú veist þetta ekki enn.
Takk, þetta er mjög vel lýst og vel útskýrt. Þú hefur hjálpað mér töluvert ;-) ♥
Bara svona til kynningar, ég er hvorki með né á móti iOS, alveg eins og með Android, en það eru nokkrir skrýtnir hlutir hér, ef eins og það er skrifað hér: "þú lendir sjaldan á forritshrun með iOS", þá með Android, forrit hrynja líklega einu sinni á ári: -P
http://dotekomanie.blog.mobilmania.cz/2012/02/stabilita-ios-vs-android/
Já, en tilvikin þegar þú þarft að loka forritinu handvirkt eru í raun lágmark, ég notaði það um það bil einu sinni? ;-) og að gefa link á samanburðarprófið frá Mobilemania er alveg tilgangslaust, þegar ég vil lesa um auglýsingarnar sem Google borgaði þá kíki ég þangað ;-) allir geta fengið hvaða android síma sem er í hendurnar og það mun ekki keyra hreint, það er að segja að Galaxy Nexus undanskildum, sem er kerfið er meira og minna sérhannað. Á heildina litið er Android hörmung
@Mek – Ég hef notað Apple vörur daglega í nokkur ár og þetta hefur aldrei komið fyrir mig, þannig að kenningin þín virkar einhvern veginn ekki.
illgresi:
@redakce – Þú sérð að það er stöðugt verið að vinna í vefsíðunni eða eitthvað að gerast með hana en ég hef það á tilfinningunni að það taki ekki viku þar til allt virkar eins og það á að gera. Og ég kem eiginlega ekki lengur, því nýja útlitið hentar mér ekki. Ég notaði allavega farsímaútgáfuna á iPhone, en núna virkar hún alls ekki - hvernig stendur á því? Þeir eru ekki að svara færslum í athugasemdunum eins og er.
@SteveJSF Því miður verða hlutirnir ekki alltaf eins og við viljum hafa þeir. Hvað svörin varðar, þá braut nýja SEO viðbótin þau, það er nú verið að leysa það.
WP-Touch sagði einnig upp þjónustu okkar af einhverjum ástæðum, svo við ákváðum að koma með betri lausn en þessa viðbót. Þannig að þú getur hlakkað til næstu frétta fljótlega :-)
Fín grein. Varðandi framkvæmdina þá vil ég segja að ég er sammála nokkrum atriðum og oftast virkar þetta eins og fram kemur, en því miður eru enn illa skrifaðar umsóknir sem haga sér ekki rétt og svo koma tilvik eins og það sem bent var á. af sumum lesendum. Mér finnst Skype vera mjög gott dæmi, ég veit af æfingu að það er enn í gangi í bakgrunni (og það er í lagi og þannig á það að vera) en vandamálið er að þetta forrit tæmir batteríið í tækinu mikið og ég get ekki séð það almennilega lengur. Aftur á móti eru forrit eins og Facebook, Badoo o.s.frv. þeir eru líka enn í gangi í bakgrunni, en neysla þeirra er nánast ómerkjanleg (ég sé allavega ekki eftir neinum). Þannig að ég held að villan sé í einstökum umsóknum. Ef vitað væri hverjir, væri nóg að slökkva á þeim handvirkt!
Þannig að venjan er sú að Facebook keyrir eftir þörfum og Skype aðeins þegar þörf krefur.
Jæja, aftur á móti, ef ég þarf að spara rafhlöðuna og ég veit að ég þarf að halda iPhone "lifandi" eins lengi og hægt er, þá slekkur ég líka á öllu sem er óþarfi í fjölverkavinnsla, en aðallega hefur það ekki mikil áhrif, en ef nauðsyn krefur takmarka ég 3G, allt farsímanet, þráðlaust net, staðsetningarþjónustu, flugstillingu, ljósstyrk o.s.frv. Sem hluti af rútínu slökkva ég einnig á fyrrnefndum forritum í fjölverkavinnsla.
Svo persónulega held ég að greinin sé sönn, því miður hafna sumir forritarar þessa hluti með forritunum sínum, vegna þess að umsóknir þeirra eru rangar og að mínu mati eru aðeins tvær lausnir fyrir þetta 1. Ef það er hægt að nota ekki forritið og finna valkostur ef mögulegt er, eða 2. Ef það er ekki hægt, sjáðu t.d. Skype, skrifaðu það til viðkomandi forritara í skýrslunni og vonaðu að þeir geri eitthvað í málinu.
Það getur verið tilgangslaust að slökkva á forritum handvirkt, en ég geri það samt. Ég reyndi líka að slökkva ekki á forritakerfinu, láta þá keyra (eða skilja þá sofandi í bakgrunni) og rafhlöðuendingin var miklu minni, það var líka nauðsynlegt að endurræsa iPad 2 eftir um þrjár vikur, hann svaraði hægt. Svo ég slekkur handvirkt á öppunum, rafhlaðan endist lengur, ég endurræsti nýlega á aðfangadag og hún gengur vel.
Við the vegur, ég geri það sama í Mac OS X, ég loka bara forritinu sem ég þarf ekki (CMD+Q), það er betra en að láta það sofa í bakgrunni og éta upp vinnsluminni að óþörfu (sem OS X getur' virkar ekki mjög vel). Ég er með lítið vinnsluminni, aðeins 8 GB, en í Windows 7 með 8 GB, kerfið brást ekki hægt eða skipti, í OS X er þetta frekar algengt fyrirbæri (ég slökkti aldrei á tölvunni, ég geri það líka með Mac, þannig að mánuður og meira upp tími er ekki undantekning, vandamálið er að ég þarf stundum að endurræsa Mac sem varúðarráðstöfun til að losa um vinnsluminni og "hraða", Windows 7 þarf þetta ekki).
Ég hef meiri áhuga á því hvernig á að sprengja forritið í raun og veru. Það sem kom fyrir mig var að forritið (sérstaklega á Geocaching) komst í ástand þar sem það var að hlaða einhverju frá móðurþjóninum og festist í því ástandi. Heimahnappur virkaði, eftir endurræsingu fór hann aftur í frosið ástand (þar sem ég hætti). Handvirk hætta (í fjölbragðavalmyndina, haltu tákninu og mínus til að loka) = forritið hvarf, eftir endurræsingu opnaði það í upprunalegu ástandi þar sem það fraus. Svo ég lokaði öllu, slökkti á símanum, kveikti á honum, tvísmellti á HOME og sjáðu – forritin voru öll til staðar eins og þau voru áður en þeim var lokað rétt áður en slökkt var á þeim. Endurræsingin hjálpaði heldur ekki - haltu heima og efri þar til það verður heitt. Það eina sem hjálpaði var að fjarlægja forritið úr símanum, endurræsa það og setja það aftur upp í símanum. Einhvern veginn tók ég það ekki.
Þessi fjölverkastjórnun virkar og það er undir þróunaraðilum komið að takast á við þessar aðstæður. Fyrir þá sem hafa áhuga á ítarlegri og faglegri lýsingu á öllu ástandinu mun ég skrifa hér hvernig hún er.
Umsóknin getur svarað alls 6 ríkjum og þessi ríki eru:
applicationWillResignActive
applicationDidEnterBackground
applicationWillEnterForeground
umsókn Gerðist Virkur
applicationWillTerminate
applicationDidReceiveMemoryWarning
Nú mun ég reyna að lýsa þessum ríkjum nánar.
applicationWillResignActive – þetta ástand þýðir að í framtíðinni (spurning um nokkrar millisekúndur) mun forritið hætta sem virka forritið (þ.e. forgrunnsforritið) þetta gerist til dæmis þegar hringt er á meðan forritið er notað, en á sama tíma aðferð því mun þetta ástand kveikja á jafnvel áð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.
applicationDidEnterBackground - þessi staða gefur til kynna að forritið hafi farið inn í bakgrunninn, forritarar æ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, til dæmis, renna út tímamæla, hreinsa frá myndir sem eru hlaðnar í minni sem þarf ekki endilega eða slíta tengingu við netþjóna ef það er ekki mikilvægt fyrir forritið að klára tenginguna í bakgrunni. Í grundvallaratriðum ætti að nota þessa aðferð þegar hún er kölluð í forritinu til að stöðva forritið algjörlega ef einhver hluti þess þarf ekki að keyra í bakgrunni.
applicationWillEnterForeground – þetta ástand er andstæða fyrsta ástandsins þegar umsóknin hættir í virka ástandið. Þetta forritsástand þýðir einfaldlega að á næstu millisekúndum mun sofandi forritið hefjast aftur úr bakgrunni og birtast í forgrunni (forritið fer inn í forgrunninn), þessa aðferð ættu forritarar að nota til að halda áfram öllum ferlum sem voru óvirkir á meðan forritið var í bakgrunni ætti að endurreisa tengingar við netþjóna, endurstilla tímamæli, hlaða myndum og gögnum inn í minnið og önnur nauðsynleg ferli geta hafist aftur rétt áður en notandinn sér hlaðið forritið aftur.
applicationDidBecomeActive – þessi staða gefur til kynna að forritið sé nýlega orðið virkt eftir að það hefur verið sett í forgrunninn, þetta er aðferð sem hægt er að nota til að gera frekari breytingar á notendaviðmótinu eða endurheimta notendaviðmótið í upprunalegt ástand, osfrv. Þessi aðferð gerist í raun og veru. þegar notandinn getur þegar séð á skjánum, svo það er nauðsynlegt að ákvarða út frá efnahagsreikningi hvað er að gerast í þessari aðferð og í fyrri aðferð. Þeir eru kallaðir hver á eftir öðrum með nokkrum millisekúndum mun.
applicationWillTerminate - þetta ástand gerist nokkrum millisekúndum áður en forritinu lýkur, það er áður en forritinu lýkur í raun. Annað hvort handvirkt úr fjölverkavinnsla eða þegar slökkt er á tækinu. Þessa aðferð ætti að nota til að vista unnin gögn og hætta allri starfsemi og eyða gögnum sem ekki er lengur þörf á.
applicationDidReceiveMemoryWarning - og þetta er ástand sem er mikið rætt hér, ef nauðsyn krefur mun iOS fjarlægja forritið úr minni ef það notar kerfisauðlindir að óþörfu. Ég veit ekki nákvæmlega hvað iOS gerir með bakgrunnsforritum, en ef það þarf forrit til að losa auðlindir í aðra ferla, hvetur það það með minnisviðvörun um að losa auðlindirnar sem það geymir. Þannig að þessi aðferð er kölluð í forritinu og forritarar ættu að útfæra hana þannig að forritið afsalar sér minni sem það hefur, vistar unnin og eyðir óþarfa gögnum úr minninu og að öðru leyti losar minnið nægilega vel. Það er rétt að margir forritarar, til dæmis byrjendur, hugsa ekki um slíka hluti eða skilja þá ekki og þá getur það gerst að umsókn þeirra stofni rafhlöðulífi í hættu og/eða eyðir kerfisauðlindum að óþörfu jafnvel í bakgrunni. Ég veit ekki hvernig iOS mun haga sér ef forritið gerir ekkert eftir að hafa fengið minnisviðvörun og heldur áfram að neyta kerfisauðlinda eins og áður.
Þessi fáu ríki og tengdar aðferðir eru á bak við alla "fjölverkavinnslan" í iOS... það er frábært kerfi ef þróunaraðilarnir hunsa ekki nauðsyn þess að bera ábyrgð á því hvað öppin munu kasta upp á tækjum notenda sinna ef þau eru lágmörkuð eða fáðu viðvaranir frá kerfinu og fleira…
Ég vona að þessi stutta lýsing hjálpi þér að skilja hvernig forritið tekur þátt í því að allt virki vel. Þannig að það er næstum hægt að segja að um mistök sé að ræða ranga notkun notandans, sem má skilja sem - ef þú notar aðallega ókeypis forrit frá áhugamannahönnuðum í miklu magni mun iOS tækið þitt ganga verr en ef þú notar stórt forrit. fjöldi ókeypis og greiddra forrita frá reyndum eða faglegum hönnuðum. Þetta er ekki þar með sagt að það séu engar undantekningar í báðum hringjum. Sem dæmi má nefna að foursquare hegðar sér nokkuð undarlega og krefjandi og á sama tíma má búast við að þeir séu mjög færir forritarar sem gefa mikinn tíma í minni og rafhlöðustjórnun, en því er öfugt farið. Stærsta vandamálið við 4SQ eru samskipti við netþjóna, sem oft hanga og eru yfirþyrmandi. Þetta er bara dæmi um það að jafnvel þekkt forrit eiga í vandræðum, sem breytir því ekki að 4SQ er frábær þjónusta.
Góða skemmtun Epli!! :)
Við bættum upplýsingum við greinina með góðfúslegu leyfi höfundar ;-)
Fyrirgefðu, ENTER var allstaðar á milli málsgreina, þeir gætu gert eitthvað í þessu hér þannig að athugasemdirnar hafi að minnsta kosti smá RICH TEXTFORMATING.
ArnieX: takk fyrir athugasemdina!!
Þessi Faramir: Ég bara um vandamálið þitt, ég veit ekki hvort það muni hjálpa í þínu tilviki, en ég veit af eigin reynslu að ef þú lokar forritinu (í fjölverkavinnsla) tekur það nokkrar sekúndur þar til það lokar, þannig að ef þú lokar forritinu (í fjölverkavinnsla) þú slekkur á því ég mæli með að bíða í nokkrar sekúndur (ég bíð í ca. 10 sekúndur til að vera viss) þangað til hann er örugglega búinn og þá fyrst byrja ég aftur.
Vertu velkominn ;) Ég mun vera fús til að hjálpa ef ég hef tækifæri til að leggja mitt af mörkum.
Hvernig á það að vera með Meeb, þegar ég skrái mig inn á ICQ eða FB spjall í gegnum það, þá skráir það sig sjálfkrafa út eftir 10 mínútur og ég fer offline eða heldur það áfram að virka? takk fyrir skýringuna :P
Eftir tíu mínútur er tenging forritsins við internetið einfaldlega rofin. Hins vegar verður þú ennþá nettengdur á Meeba netþjóninum og þú færð ýtt tilkynningu ef einhver skrifar til þín. Eftir að forritið hefur verið opnað aftur verður tengingin komin á í augnabliki og þú getur haldið áfram að spjalla glaður.
Þannig að ef ég skildi greinina sem þú tengdir rétt þá vísar tölfræðin aðeins til forritahruns þegar þau byrja, sem er frekar lítið hlutfall tilvika þar sem hrun getur átt sér stað. Því er ómögulegt að draga þá ályktun af þessari "rannsókn" að iOS sé minna stöðugt að mínu mati. Ennfremur gleymdi þýðandi greinarinnar sem tekin var úr Forbes að nefna að fyrirtækið sem veitir gögn um hrun forrita er meðal annars studd af Google ("Crittercism, sem er studd af Google Ventures,...").