Hjem Sosiale medier Hva skal jeg gjøre når normal behandling av mitt iOS-program blir avbrutt? - dummies

Hva skal jeg gjøre når normal behandling av mitt iOS-program blir avbrutt? - dummies

Video: Week 9, continued 2024

Video: Week 9, continued 2024
Anonim

På en iOS-enhet kan ulike hendelser i tillegg til avslutning avbryte appen din slik at brukeren kan svare og appen din beveger seg i inaktiv tilstand. Hvis brukeren velger å ignorere en avbrudd, flyttes appen tilbake til aktiv tilstand og fortsetter å kjøre som før. Hvis brukeren bestemmer seg for å trykke på varselet, flyttes appen din til bakgrunnsstatus, hvor den er suspendert, men forblir i minnet.

iOS sender deg en rekke meldinger for å fortelle deg nøyaktig hva som skjer, så vel som å gi deg muligheten til å ta handlinger som for eksempel lagre brukerdata og statlig informasjon, som betyr å lagre punktet der brukeren var i appen. Fordi appen er i bakgrunnen og fortsatt i minnet, er gjenoppstart nesten øyeblikkelig.

En apps objekter forblir i minnet, så de trenger ikke å bli gjenopprettet når appen starter på nytt. Hvis minnet blir begrenset, kan iOS rense bakgrunnsprogrammer for å gjøre mer plass til forgrunnsappen.

Fordi disse forstyrrelsene forårsaker et midlertidig tap av kontroll av appen din, blir berøringshendelser ikke lenger sendt til appen din.

Begivenhetssekvensen starter alltid på samme måte - med applicationWillResignActive: meldingen sendes til appens delegate når appen er i ferd med å bevege seg fra aktiv til inaktiv tilstand. I denne metoden bør du sette pause på løpende oppgaver, deaktivere tidtakere, smelte ned OpenGL ES-rammeprinsene, og sett generelt på vent.

Hva skjer etter dette avhenger av a) arten av avbrudd, og b) hvordan brukeren svarer på avbrudd. Appen din kan enten flyttes til bakgrunnen eller reaktiveres.

Hvis brukeren svarer på avbrudd eller har lansert en annen app, blir appen din flyttet til bakgrunnen.

De neste to punktene forklarer meldingene dine app kan svare på etter at den er flyttet inn i bakgrunnen:

  • The applicationDidEnterBackground: melding: Når appen din først går inn i bakgrunnsstaten, er den sendte søknadenDidEnterBackground: melding. I denne metoden bør du lagre alle data som ikke er lagret, eller state (den nåværende visningen, valgene som er valgt og ting som det) til en midlertidig hurtigbufferfil eller til preferansedatabasen på disken.

    Selv om appen din kommer inn i bakgrunnsstaten, har du ingen garanti for at den forblir der ubestemt. Hvis minnet blir begrenset, vil iOS rense bakgrunnsprogrammer for å gjøre mer plass til forgrunnsappen.Du må gjøre alt som er nødvendig for å kunne gjenopprette appen din, hvis den senere blir renset fra minnet.

    Hvis appen din blir renset når den er i denne suspenderte tilstanden, , blir det ikke merket at den er fjernet fra minnet. Derfor må du lagre data når du mottar applicationDidEnterBackground: melding.

    Når din delegat er sendt applicationDidEnterBackground: -metoden, har appen din en ubestemt tid til å fullføre ting. Hvis metoden ApplicationDidEnterBackground: ikke returnerer før tiden går tom (eller hvis appen din ikke ber om mer eksekveringstid fra iOS), blir appen din avsluttet og renset fra minnet.

    Hvis appen din ber om flere utførelsestider, eller den har erklært at den gjør bakgrunnsutførelse, kan det fortsette å kjøre etter at metoden returnerer applicationDidEnterBackground: method. Hvis ikke, blir din (nå) bakgrunnsapplikasjon flyttet til suspendert -staten kort tid etter at du har returnert fra applicationDidEnterBackground: -metoden.

    Hvis appen er i bakgrunnen, kan den bli lansert på nytt. Dette kan skje hvis brukeren velger appen fra startskjermbildet eller multitaskingslinjen, eller det blir lansert av systemet hvis appen behandler hendelser i bakgrunnen eller overvåker en betydelig lokaliseringsendring, for eksempel.

  • Programmet applicationWillEnterForeground: : Når appen din startes på nytt fra bakgrunnen, sendes programmet ApplicationWillEnterForeground: melding. I denne metoden må du angre hva du gjorde i applicationDidEnterBackground: metoden.

Hvis brukeren ignorerer SMS-meldingen, eller appen starter på nytt fra bakgrunnen, blir appen aktivert og begynner å få berøring og andre hendelser.

Når appen din blir aktivert, blir den sendt programmetDidBecomeActive: melding.

Du kan bruke applicationDidBecomeActive: metoden for å gjenopprette appen til tilstanden den var i før avbrudd. Her fortryder du det du gjorde i applicationWillResignActive-metoden, for eksempel omstart eventuelle oppgaver som ble satt på pause (eller ikke startet ennå) mens appen var inaktiv. Hvis appen var tidligere i bakgrunnen, må du kanskje oppdatere brukergrensesnittet.

Mens en app er i suspendert tilstand, sporer systemet og samler (egentlig netsout) hendelser som kan ha innvirkning på den appen når den starter på nytt. Så snart appen din er oppe og kjører igjen, leverer systemet disse hendelsene til den. For de fleste av disse hendelsene bør appens eksisterende infrastruktur bare svare på riktig måte.

Apper flyttes vanligvis til bakgrunnen når de avbrytes. Men hvis appen ble kompilert med en veldig tidlig versjon av SDK, eller kjører på en tidlig versjon av operativsystemet som ikke støtter multitasking - eller hvis du bestemmer deg for at du ikke vil at appen skal kjøre i bakgrunnen og du setter UIApplicationExitsOnSuspend nøkkelen i sin Info. plist-fil - iOS avslutter appen din.

Selv om appen din støtter multitasking, må du likevel være forberedt på at appen din blir drept uten varsel.Brukeren kan drepe apps eksplisitt ved hjelp av multitaskingslinjen. I tillegg, hvis minnet blir begrenset, kan systemet fjerne programmer fra minnet for å gjøre mer plass. Hvis den fjerner suspendert appen, , gir den deg ingen advarsel !

Når applikasjonsdelegatet sendes, vil programmetWillTerminate: melding i ikke-multitaskingsprogrammer, eller de som kjører i bakgrunnen, gjøre det samme som du gjør i programmetDidEnterBackground: bortsett fra denne gangen gjør du at de vet at appen din har vunnet kommer ikke tilbake fra bakgrunnen.

Din søknadWillTerminate: Metodeimplementering har en begrenset tid til å gjøre hva den trenger å gjøre og returnere. Lengre enn det, og appen din blir avsluttet og renset fra minnet.

Hva skal jeg gjøre når normal behandling av mitt iOS-program blir avbrutt? - dummies

Redaktørens valg

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Bruk skjermfeltet til å endre QuickBooks 2014 Rapporter - dummies

Skjermbildet i QuickBooks Modify Report dialogboksen lar deg kontrollere rapportintervalldatoen, rapportgrunnlaget, kolonnene og en annen formatering. Bokstavene Rapporter datoområde - Datoer, Fra og Til - gjør det samme som Datoer, Fra og Til bokser i Rapportvinduet. Disse boksene lar ...

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2013 Rapporter - dummies

Hvis du klikker Tilpass rapport, QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Redaktørens valg

Administrere Cloud Computing Resources - dummies

Administrere Cloud Computing Resources - dummies

I teorien bør cloud computing-tjenester ikke være forskjellig fra ressursene i din eget miljø, bortsett fra at de bor eksternt. Ideelt sett har du en komplett visning av cloud computing-ressursene du bruker i dag, eller vil kanskje bruke i fremtiden. I de fleste skymiljøer kan kunden bare få tilgang til ...

Tips for Going Cloud med datanettverkene dine - dummies

Tips for Going Cloud med datanettverkene dine - dummies

Beregning med datanettverket ditt kan være, hva skal du gjøre for å ta nettverket ditt mot skyen? Her er noen anbefalinger: Ikke stole på en dårlig Internett-tilkobling. Først og fremst, før du tar noen av nettverksoperasjonene i skyen, gjør du ...

Nettverkstjenester levert gjennom Cloud Computing - dummies

Nettverkstjenester levert gjennom Cloud Computing - dummies

Tre forskjellige typer nettverkstjenester kan leveres via skyen: applikasjoner , plattformer og tjenester (infrastruktur). I de følgende avsnittene beskrives disse tre typer skyttjenester i større detalj. Programmer i skyen Vanligvis kalt Software as a Service (SaaS), fullt funksjonelle applikasjoner kan leveres via skyen. En av ...

Redaktørens valg

10 Hadoop Ressurser verdt en bokmerke - dummies

10 Hadoop Ressurser verdt en bokmerke - dummies

Følgende er ti fantastiske Hadoop-ressurser som er verdige til å skape en bokmerke i nettleseren din. Disse ressursene hjelper deg med å skape en livslang læringsplan for Hadoop. Sentralnervesystemet: Apache. org Apache Software Foundation (ASF) er det sentrale fellesskapet for open source-programvareprosjekter. Ikke bare et prosjekt kan være et Apache-prosjekt - ...

Data transformasjon i Hadoop - dummies

Data transformasjon i Hadoop - dummies

Ideen om Hadoop-inspirerte ETL motorer har fått mye trekkraft de siste årene. Hadoop er trods alt en fleksibel datalagrings- og behandlingsplattform som kan støtte store mengder data og operasjoner på dataene. Samtidig er det feiltolerant, og det gir mulighet for kapital- og programvarekostnad ...

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Datablokker i Hadoop Distributed File System (HDFS) - dummier

Når du lagrer en fil i HDFS, bryter systemet det ned i et sett med individuelle blokker og lagrer disse blokkene i forskjellige slave noder i Hadoop-klyngen. Dette er en helt vanlig ting å gjøre, da alle filsystemer bryter filer ned i blokker før de lagres til disk. HDFS har ingen ...