Vi kender alle lektionen "multitasking = evnen til at udføre flere processer på samme tid". Vi bruger det i vores computere uden at være særligt opmærksomme på dets tilstedeværelse. Skift mellem applikationer eller vinduer i en applikation finder sted (for os) i realtid, og vi tager denne mulighed for operativsystemet for givet.
Opgave anderledes
Operativsystemet tildeler processoren til alle applikationer i små tidsintervaller. Disse tidsrum er så små, at vi ikke kan lægge mærke til dem, så det virker som om, at alle applikationer bruger processoren på samme tid. Det tror vi måske multitasking i iOS 4 fungerer nøjagtigt det samme. Sådan er det ikke. Hovedårsagen er naturligvis batterikapaciteten. Hvis alle applikationerne virkelig stod kørende i baggrunden, skulle vi nok lede efter en socket om et par timer.
De fleste programmer, der er kompatible med iOS 4, sættes i "suspenderet tilstand" eller sættes i dvale efter at have trykket på knappen Hjem. En analogi kan være at lukke låget på en bærbar computer, som straks går i dvaletilstand. Efter åbning af låget vågner den bærbare computer op, og alt er i nøjagtig samme tilstand som før låget blev lukket. Desuden er der programmer, hvor et tryk på Hjem-knappen får dem til at afslutte. Og med det mener vi en reel opsigelse. Udviklere kan vælge, hvilken af disse metoder de skal bruge.
Men der er en anden kategori af applikationer. Det er de apps, der virkelig kører i baggrunden, selvom du laver noget helt andet på din iDevice. Skype er et godt eksempel, fordi det har brug for en konstant internetforbindelse. Andre eksempler ville være apps, der afspiller musik i baggrunden (Pandora) eller apps, der kræver konstant brug af GPS. Ja, disse apps dræner dit batteri, selv når de kører i baggrunden.
Sove eller skyde ned?
Visse applikationer, der er kompatible med iOS 4, som skal sættes i dvale (sættes i "suspenderet tilstand") efter at have trykket på knappen Hjem, fortsætter med at køre i baggrunden. Apple gav udviklerne præcis ti minutter for appen at fuldføre sin opgave, uanset hvad det var. Lad os sige, at du downloader en fil i GoodReader. Pludselig vil nogen ringe til dig, og du skal bare tage imod det vigtige opkald. Opkaldet varede ikke mere end ti minutter, du vender tilbage til GoodReader-applikationen. Filen er muligvis allerede downloadet eller bliver stadig downloadet. Hvad hvis opkaldet tager mere end ti minutter? Applikationen, i vores tilfælde GoodReader, bliver nødt til at stoppe sin aktivitet og fortælle iOS, at den kan sættes i dvale. Hvis hun ikke gør det, bliver hun nådesløst opsagt af iOS selv.
Nu kender du forskellen mellem "mobil" og "desktop" multitasking. Mens flydende og hurtig skift mellem applikationer er vigtige for en computer, er batterilevetid altid det vigtigste for mobile enheder. Multitasking skulle også tilpasses dette faktum. Derfor, efter at have læst denne artikel, hvis du trykker to gange på Hjem-knappen, vil du ikke længere se "linjen med applikationer, der kører i baggrunden", men i det væsentlige kun "listen over nyligt brugte applikationer".
Forfatter: Daniel Hruškakilde: onemoretap.com
hmm, interessant :) Jeg har altid troet, at det altid lignede, hvordan det kan gøres på Unix. At applikationen er blevet tildelt nul CPU-tid og processen bare sidder i hukommelsen, er alle ressourcer blevet allokeret. så jeg var nødt til at trykke to gange hjem og straks stoppe applikationen for at slette den. Så betyder det, at selvom der er et applikationsikon i det nederste skjulte ark, er appen stadig lukket for længe siden (efter 10 minutter)?
I den nederste liste er der ganske enkelt de senest åbnede applikationer, hvor nogle af dem stadig kan køre, nogle er suspenderet, og nogle er helt afsluttet. Manuel fjernelse af programmet fra listen har den "bivirkning", at hvis det tilfældigvis kører (eller er suspenderet), vil det blive afsluttet.
Applikationen skal selv fortælle om de 10 ekstra minutter, og det er ikke garanteret, at den får dem.
Nå, det frigjorde ikke min besættelse af at lukke applikationen fra listen (hvad nu hvis den ved et uheld spiser ressourcer, ikke? :-D)
Min forståelse er, at de 10 minutter er til apps, der skal arbejde i baggrunden og ikke falder ind under kategorien "skype, GPS og musikafspilning". Andre programmer skifter til suspenderet tilstand og forbliver i hukommelsen, indtil hukommelsen er nødvendig til andre ting.
Suspenderet tilstand har den fordel, at hvis du derefter skal dræbe appen, mister du ikke dens data, alt vil blive gemt i det øjeblik, du skifter til suspenderet.
eller, i tilfælde af for eksempel afspilning, svarende til kommandoen bg / fg
Og hvad med afspilleren eller andre programmer, der kører i baggrunden i længere tid? Jeg mener, må jeg "vælge" som udvikler, eller skal dette godkendes af Apple på en eller anden måde?
For at applikationen virkelig kan køre i baggrunden i et ubegrænset tidsrum, skal den udføre (registrere) en af følgende handlinger:
- Brug placeringstjenester (GPS)
- Afspil musik i baggrunden
- Brug VOIP (Voice over IP)
Ifølge titlen (et kig under motorhjelmen) forventede jeg, at artiklen ville indeholde en noget mere omfattende forklaring med tekniske detaljer. Dette ligner mere en perex til artiklen. Hvis det er perex, hvornår er efterfølgeren? Kan du få en refusion? :-)
og hvad vil du gerne vide mere detaljeret?
Fra en artikel med "under motorhjelmen" i titlen ville jeg forvente en detaljeret teknisk beskrivelse (forfatteren kunne f.eks. analysere overhead ved skift af applikationer, eller hvordan samtidig adgang til systemressourcer løses), en sammenligning med andre modeller (for eksempel med en jailbroken iPhone). Det er ideelt at sikkerhedskopiere det med nogle mål. Jeg forventede simpelthen meget mere af en artikel, der har "under motorhjelmen" i titlen end denne meget overfladiske beskrivelse.
Er der nogen icq-klient, der kører kontinuerligt i baggrunden som skype og ikke afbryder forbindelsen?
applikationen har 10 sekunder til at gå i suspenderingstilstand, ikke 10 minutter... og under denne proces kan nogle dele muligvis "hænge" på backend-tjenester, hvoraf nogle allerede er opført ovenfor - det er det, Apple kalder "smart" "multitasking... så skød systemet hende ned
Ansøgningen kan kræve yderligere tid, hvis noget bliver downloadet, uploadet eller behandlet. Det har intet at gøre med GPS, VoIP eller afspilning af musik, som kører i minimalistisk tilstand i ubegrænset tid.