Sulje mainos

On edelleen paljon ihmisiä, jotka eivät tiedä kuinka moniajo toimii iOS:ssä. Aluksi on kuitenkin syytä huomauttaa, että tämä ei ole todellista moniajoa, vaan erittäin älykästä ratkaisua, joka ei kuormita järjestelmää tai käyttäjää.

Usein voi kuulla taikauskoa, että iOS:n taustalla toimivat sovellukset täyttävät käyttömuistin, mikä johtaa järjestelmän hidastumiseen ja akun kestoon, joten käyttäjän tulee sammuttaa ne manuaalisesti. Moniajopalkki ei itse asiassa sisällä luetteloa kaikista käynnissä olevista taustaprosesseista, vaan vain viimeksi käynnistetyistä sovelluksista. Käyttäjän ei siis tarvitse huolehtia taustalla käynnissä olevista prosesseista muutamaa tapausta lukuun ottamatta. Kun painat Koti-painiketta, sovellus yleensä menee lepotilaan tai sulkeutuu, jolloin se ei enää lataa prosessoria tai akkua ja tarvittaessa vapauttaa tarvittavaa muistia.

Tämä ei siis ole täysivaltaista moniajoa, kun sinulla on käynnissä kymmeniä prosesseja, vaan vain yksi sovellus on aina käynnissä etualalla, joka tarvittaessa keskeytetään tai sammutetaan kokonaan. Vain muutama toissijainen prosessi toimii taustalla. Siksi iOS:ssä törmäät harvoin sovellusten kaatumiseen, esimerkiksi Android on täynnä käynnissä olevia sovelluksia, joista käyttäjän on huolehdittava. Toisaalta tämä tekee laitteen kanssa työskentelystä epämiellyttävää, toisaalta se aiheuttaa esimerkiksi hidasta käynnistystä ja siirtymiä sovellusten välillä.

Sovelluksen suoritusaikatyyppi

iOS-laitteesi sovellus on jossakin seuraavista viidestä tilasta:

  • Juoksu: sovellus käynnistyy ja toimii etualalla
  • Tausta: se on edelleen käynnissä, mutta käynnissä taustalla (voimme käyttää muita sovelluksia)
  • Keskeytetty: Käyttää edelleen RAM-muistia, mutta ei käynnissä
  • Epäaktiivinen: sovellus on käynnissä, mutta epäsuorat komennot (esimerkiksi kun lukitset laitteen sovelluksen ollessa käynnissä)
  • Ei käynnissä: Sovellus on päättynyt tai ei ole alkanut

Hämmennys tulee, kun sovellus menee taustalle, jotta se ei häiritse. Kun painat Koti-painiketta tai suljet sovelluksen (iPadin) eleellä, sovellus siirtyy taustalle. Useimmat sovellukset keskeytyvät sekunneissa (Ne tallennetaan iDevicen RAM-muistiin, jotta ne voidaan käynnistää nopeasti, ne eivät kuormita prosessoria niin paljon ja säästävät näin akkua) Saatat ajatella, että jos sovellus jatkaa muistin käyttöä, sinulla on poistaaksesi sen manuaalisesti vapauttaaksesi sen. Mutta sinun ei tarvitse tehdä sitä, koska iOS tekee sen puolestasi. Jos sinulla on taustalla keskeytetty vaativa sovellus, kuten paljon RAM-muistia käyttävä peli, iOS poistaa sen tarvittaessa automaattisesti muistista ja voit käynnistää sen uudelleen napauttamalla sovelluskuvaketta.

Mikään näistä tiloista ei näy moniajopalkissa, paneeli näyttää vain luettelon äskettäin käynnistetyistä sovelluksista riippumatta siitä, onko sovellus pysäytetty, keskeytetty vai käynnissä taustalla. Saatat myös huomata, että parhaillaan käynnissä oleva sovellus ei näy Multitasking-paneelissa

Taustatehtävät

Normaalisti, kun painat Koti-painiketta, sovellus toimii taustalla, ja jos et käytä sitä, se pysähtyy automaattisesti viiden sekunnin sisällä. Joten jos esimerkiksi lataat podcastia, järjestelmä arvioi sen käynnissä olevaksi sovellukseksi ja viivästyttää lopettamista kymmenellä minuutilla. Viimeistään kymmenen minuutin kuluttua prosessi vapautetaan muistista. Lyhyesti sanottuna sinun ei tarvitse huolehtia latauksen keskeyttämisestä painamalla Koti-painiketta, jos lataus ei kestä yli 10 minuuttia.

Taustalla jatkuva käynnissä

Jos järjestelmä ei ole aktiivinen, järjestelmä lopettaa sovelluksen viiden sekunnin kuluessa ja latausten kohdalla lopettaminen viivästyy kymmenen minuuttia. On kuitenkin olemassa pieni määrä sovelluksia, jotka vaativat käynnissä olevan taustalla. Tässä on joitain esimerkkejä sovelluksista, jotka voivat toimia taustalla loputtomasti iOS 5:ssä:

  • Sovellukset, jotka toistavat ääntä ja jotka on keskeytettävä hetkeksi (musiikin keskeyttäminen puhelun aikana jne.),
  • Sovellukset, jotka seuraavat sijaintiasi (navigointiohjelmisto),
  • VoIP-puheluita vastaanottavat sovellukset, esimerkiksi jos käytät Skypeä, voit vastaanottaa puhelun, vaikka sovellus olisi taustalla,
  • Automaattiset lataukset (esim. Lehtikioski).

Kaikki sovellukset tulee sulkea, jos ne eivät enää suorita tehtäviä (kuten taustalatauksia). On kuitenkin poikkeuksia, jotka toimivat taustalla jatkuvasti, kuten alkuperäinen Mail-sovellus. Jos ne toimivat taustalla, ne vievät muistia, suorittimen käyttöä tai lyhentävät akun käyttöikää

Sovellukset, jotka saavat toimia taustalla rajoituksetta, voivat tehdä mitä tahansa, mitä he tekevät ollessaan käynnissä, musiikin toistamisesta uusien Podcast-jaksojen lataamiseen.

Kuten aiemmin mainitsin, käyttäjän ei tarvitse koskaan sulkea taustalla käynnissä olevia sovelluksia. Ainoa poikkeus tähän on, kun taustalla toimiva sovellus kaatuu tai ei herää lepotilasta kunnolla. Käyttäjä voi sitten sulkea sovellukset manuaalisesti moniajopalkissa, mutta näin tapahtuu harvoin.

Yleensä sinun ei siis tarvitse hallita taustaprosesseja, koska järjestelmä hoitaa ne itse. Siksi iOS on niin tuore ja nopea järjestelmä.

Kehittäjän näkökulmasta

Sovellus voi reagoida yhteensä kuuden eri tilan kanssa osana moniajoa:

1. applicationWillResignActive

Käännöksessä tämä tila tarkoittaa, että sovellus eroaa aktiivisesta sovelluksesta (eli etualalla olevasta sovelluksesta) tulevaisuudessa (muutaman millisekunnin ajan). Näin tapahtuu esimerkiksi puhelun vastaanottaessa sovellusta käytettäessä, mutta samalla tämä menetelmä aiheuttaa myös tämän tilan ennen kuin sovellus menee taustalle, joten sinun on otettava nämä muutokset huomioon. Tämä menetelmä sopii myös esimerkiksi niin, että se keskeyttää kaikki tekemänsä toiminnot saapuvan puhelun tullessa ja odottaa puhelun loppuun.

2. applicationDidEnterBackground

Tila osoittaa, että sovellus on mennyt taustalle. Kehittäjien tulisi käyttää tätä menetelmää keskeyttääkseen kaikki prosessit, joiden ei välttämättä tarvitse toimia taustalla, ja tyhjentää muistin käyttämättömästä tiedosta ja muista prosesseista, kuten vanhenevat ajastimet, tyhjentää ladatut kuvat muistista, joita ei välttämättä tarvita, tai sulkea yhteyksiä palvelimiin, ellei sovelluksen ole tärkeää suorittaa yhteyksiä taustalla. Kun menetelmää vedetään sovelluksessa, sitä tulisi lähinnä käyttää sovelluksen täydelliseen keskeyttämiseen, jos jonkin sen osan ei tarvitse ajaa taustalla.

3. applicationWillEnterForeground

Tämä tila on päinvastainen kuin ensimmäinen tila, jossa sovellus luopuu aktiiviseen tilaan. Tila tarkoittaa yksinkertaisesti sitä, että nukkuva sovellus palaa taustalta ja näkyy etualalla muutaman millisekunnin sisällä. kehittäjien tulee käyttää tätä menetelmää jatkaakseen prosesseja, jotka olivat passiivisia sovelluksen ollessa taustalla. Yhteydet palvelimiin tulee muodostaa uudelleen, ajastimet nollata, kuvat ja tiedot ladata muistiin ja muut tarvittavat prosessit voivat jatkua juuri ennen kuin käyttäjä näkee ladatun sovelluksen uudelleen.

4. ApplicationDidBecomeActive

Tila ilmaisee, että sovellus on juuri aktivoitunut sen jälkeen, kun se on palautettu etualalle. Tämä on menetelmä, jolla voidaan tehdä lisäsäätöjä käyttöliittymään tai palauttaa käyttöliittymä alkuperäiseen tilaan jne. Tämä tapahtuu itse asiassa sillä hetkellä, kun käyttäjä jo näkee sovelluksen näytöllä, joten on välttämätöntä määritä varoen, mitä tapahtuu tässä ja edellisessä menetelmässä. Niitä kutsutaan peräkkäin muutaman millisekunnin erolla.

5. ApplicationWillTerminate

Tämä tila tapahtuu muutama millisekunti ennen sovelluksen sulkemista, toisin sanoen ennen kuin sovellus todella päättyy. Joko manuaalisesti moniajosta tai sammutettaessa laite. Menetelmää tulisi käyttää käsiteltyjen tietojen tallentamiseen, kaikkien toimintojen lopettamiseen ja tarpeettomien tietojen poistamiseen.

6. applicationDidReceiveMemoryWarning

Se on viimeinen tila, josta puhutaan eniten. Se vastaa tarvittaessa sovelluksen poistamisesta iOS-muistista, jos se käyttää järjestelmäresursseja tarpeettomasti. En tiedä tarkasti, mitä iOS tekee taustasovelluksilla, mutta jos se tarvitsee sovelluksen vapauttamaan resursseja muihin prosesseihin, se kehottaa vapauttamaan kaikki resurssit, joita sillä on muistivaroituksella. Joten tätä menetelmää kutsutaan sovelluksessa. Kehittäjien tulee toteuttaa se niin, että sovellus luopuu varaamasta muistista, tallentaa kaiken keskeneräisen, tyhjentää tarpeettomat tiedot muistista ja muuten vapauttaa muistia riittävästi. On totta, että monet kehittäjät, edes aloittelijat, eivät ajattele tai ymmärrä tällaisia ​​asioita, ja silloin voi tapahtua, että heidän sovelluksensa uhkaa akun käyttöikää ja/tai kuluttaa tarpeettomasti järjestelmäresursseja, jopa taustalla.

tuomio

Nämä kuusi tilaa ja niihin liittyvät menetelmät ovat kaiken iOS:n "monitehtävän" taustalla. se on loistava järjestelmä, kunhan kehittäjät eivät jätä huomiotta tosiasiaa, että on oltava vastuussa siitä, mitä sovellus heittää käyttäjiensä laitteisiin, jos ne on minimoitu tai he saavat varoituksia järjestelmältä ja niin edelleen.

Lähde: Macworld.com

Tekijät: Jakub Požárek, Martin Doubek (ArnieX)

 
Onko sinulla myös ratkaistava ongelma? Tarvitsetko neuvoja tai kenties löytää oikean sovelluksen? Älä epäröi ottaa meihin yhteyttä osiossa olevan lomakkeen kautta Neuvonta, seuraavan kerran vastaamme kysymykseesi.

.