Forstå tilstandene og overgangene til en iOS-app

Alle iOS-apper utviklet for å kjøre på versjon 4.0 eller nyere har muligheten til å behandle i bakgrunnen. Dette betyr selvfølgelig at en utvikler har mange flere alternativer for å administrere minne og effektivisere iOS-appene sine. Operativsystemet holder konstant kommunikasjon med hver iOS-app, og gir informasjon for å gi appen en mulighet til å gjøre de nødvendige justeringene. Det er viktig for hver utvikler å forstå konseptet med applikasjonsstatus, og de fem viktigste applikasjonsmetodene å implementere for å håndtere overganger.

States

Apper utviklet for tidlige iOS-versjoner (før iOS 4.0) støttet tre tilstander: ikke-kjørende, inaktive og aktive . En applikasjonsdelegat for pre-iOS 4.0-apper mottok to viktige metodeanrop: applicationDidFinishLaunching og applicationWillTerminate. Da en app mottok en applikasjonDidFinishLanseringsmelding, var det en mulighet for informasjon som ble hentet fra forrige lansering for å gjenopprette appen til den sist brukte tilstanden. Status, applicationWillTerminate, ble brukt til å varsle appen da appen forberedte seg på å slå av. Dette ga utvikleren en mulighet til å lagre all informasjon som ikke er lagret eller spesifikk status.

For øyeblikket er det fem mulige applikasjonsstater som vil være årsak til at appen forbereder seg på en overgang - for eksempel avslutning eller flytting til bakgrunnen. I visse tilfeller kan det hende at en app må fortsette behandlingen i bakgrunnen. Imidlertid er det absolutt ingen grunn til at appen behandler grafikk, animasjoner eller skjermspesifikke rutiner. De fem delstatene i en iOS-app - som er oppført i iOS App Programmeringshåndbok - inkluderer følgende:

  1. Ikke kjører - Appen kjører ikke.
  2. Inaktiv - Appen kjører i forgrunnen, men mottar ikke hendelser. En iOS-app kan plasseres i inaktiv tilstand, for eksempel når en samtale- eller SMS-melding mottas.
  3. Aktiv - Appen kjører i forgrunnen og mottar hendelser.
  4. Bakgrunn - Appen kjører i bakgrunnen og kjører kode.
  5. Suspendert - Appen er i bakgrunnen, men ingen kode blir kjørt.

De syv viktigste søknad delegerer metoder

Operativsystemet kaller spesifikke metoder i applikasjonsdelegatet for å lette overgang til og fra forskjellige stater. De syv viktigste applikasjonsdelegatmetodene en utvikler skal håndtere er:

 applikasjons: willFinishLaunchingWithOptions 

Metode som kalles når lanseringsprosessen startes. Dette er den første muligheten til å utføre en hvilken som helst kode i appen.

 applikasjons: didFinishLaunchingWithOptions 

Metode som kalles når lanseringsprosessen er nesten ferdig. Siden denne metoden kalles er før noen av appens vinduer vises, er det den siste muligheten til å forberede grensesnittet og gjøre endelige justeringer.

 applicationDidBecomeActive 

Når applikasjonen har blitt aktiv, vil applikasjonsdelegaten motta en tilbakeringingsvarslingsmelding via metoden applicationDidBecomeActive.

Denne metoden kalles også hver gang appen går tilbake til en aktiv tilstand fra en forrige bytte til inaktiv fra en resulterende telefonsamtale eller SMS.

 applicationWillResignActive 

Det er flere forhold som vil gyte applikasjonenWillResignActive-metoden. Hver gang en midlertidig hendelse, for eksempel en telefonsamtale, skjer denne metoden. Det er også viktig å merke seg at å "slutte" en iOS-app ikke avslutter prosessene, men heller flytter appen til bakgrunnen.

 applicationDidEnterBackground 

Denne metoden kalles når en iOS-app kjører, men ikke lenger i forgrunnen. Med andre ord vises ikke brukergrensesnittet for øyeblikket. I følge Apples UIApplicationDelegate Protocol Reference har appen omtrent fem sekunder på å utføre oppgaver og returnere. Hvis metoden ikke kommer tilbake innen fem sekunder, avsluttes applikasjonen.

 applicationWillEnterForeground 

Denne metoden kalles som en app forbereder seg på å bevege seg fra bakgrunnen til forgrunnen. Appen blir imidlertid ikke flyttet til en aktiv tilstand uten at applikasjonenDidBecomeActive-metoden blir kalt. Denne metoden gir en utvikler muligheten til å gjenopprette innstillingene for forrige kjørestatus før appen blir aktiv.

 applicationWillTerminate 

Denne metoden varsler søknadsdelegaten din når en avslutningshendelse er utløst. Hvis du trykker på startknappen, avsluttes ikke lenger applikasjonen. Tvinge til å avslutte iOS-appen, eller slå av enheten, utløser applikasjonenWillTerminate-metoden. Dette er muligheten til å lagre applikasjonskonfigurasjon, innstillinger og brukerpreferanser.

Søknadstilstand endres

Hver iOS-app er alltid i en av de fem apptilstandene. Operativsystemet administrerer apptilstanden, men appen selv er ansvarlig for å håndtere viktige oppgaver for å sikre jevn overgang mellom statene. Utviklere må svare riktig på appstatusoverganger.

Med multitasking-funksjonalitet, administrerer den nyeste iOS-versjonen ressursene som er tilgjengelige for hver app. Det er imidlertid viktig å merke seg at operativsystemet begrenser hva en app kan gjøre i bakgrunnen. Hvis en app må fortsette å kjøre i bakgrunnen (med begrenset funksjonalitet), må du be om tillatelse.

Lansering av appen

I det øyeblikket en bruker banker på appikonet, begynner appen å endre status. Appdelegaten mottar en applikasjon: willFinishLaunchingWithOptions-metodeanrop, og apptilstanden endres fra ikke-kjørt til inaktivt . Når den er inaktiv, vil appdelegaten motta en applikasjon: didFinishLaunchingWithOptions-metodeanrop, noe som gir appen en mulighet til å gjøre endelige justeringer før grensesnittet vises. Hvis appen ikke er designet for å starte i bakgrunnen, vil operativsystemet aktivere appen, stille appstatusen til å være aktiv og sende applikasjonenDidBecomeActive-metodeanrop til appdelegaten.

avbrudd

Noen ganger må iOS-appen svare på avbrudd. Et varselbasert avbrudd - for eksempel en telefonsamtale - får appen til å bevege seg i inaktiv tilstand. Appdelegaten vil motta en applikasjonsWillResignActive-metodeanrop, slik at appen får en mulighet til å forberede seg på en midlertidig inaktiv tilstand. Hvis brukeren velger å ignorere avbruddet, eller avbrytelsesprosessen er avsluttet, vil appen flytte tilbake til aktiv tilstand. Mens du gjør overgangen fra inaktiv til aktiv, vil appdelegaten motta en applikasjonDidBecomeActive-metodeanrop.

Bytter til bakgrunnen

IOS-enhetene gjør det enkelt å raskt bytte fra app til app; når en bruker bytter til en annen app, flytter den nåværende appen til bakgrunnen. Appen kan være i en av to stater: bakgrunn eller suspendert . I begge tilfeller, og før du bytter til bakgrunnen, mottar appdelegaten et programWillResignActive-metodeanrop, etterfulgt av en applikasjonDidEnterBackground-melding. Hvis den er i suspendert tilstand, sover appen. En bakgrunnstilstand - noe som betyr at appen har lov til å fortsette å utføre kode - krever at appen overvåker og håndterer hendelser. Utviklere må være klar over at operativsystemet kan avslutte appen når som helst.

En siste tanke

Apples iOS er blant de mest intuitive og brukervennlige operativsystemene tilgjengelig. Så lenge utviklere følger beste praksis, forblir brukeropplevelsen konsistent og problemfri. Høyt utviklede apper drar full nytte av den konstante kommunikasjonen mellom operativsystemet og iOS-appen. Det krever veldig lite arbeid å overvåke overgangsmeldingene og håndtere de forskjellige appstatene. Litt due diligence går langt.

Les også:

  • Fordelene ved å bruke designmønstre i iOS-utvikling
  • Beste praksis: Utvikle heterogene iOS-apper
  • Xcode iOS standard applikasjonsmaler på et øyeblikk

© Copyright 2020 | mobilegn.com