Hjem Social Media Hvad skal jeg gøre, når den normale behandling af min iOS-applikation afbrydes? - dummies

Hvad skal jeg gøre, når den normale behandling af min iOS-applikation afbrydes? - dummies

Video: iOS App Development with Swift by Dan Armendariz 2024

Video: iOS App Development with Swift by Dan Armendariz 2024
Anonim

På en iOS-enhed kan forskellige begivenheder udover opsigelse afbryde din app, så brugeren kan reagere, og din app flytter til inaktiv tilstand. Hvis brugeren vælger at ignorere en afbrydelse, flyttes din app tilbage til aktiv tilstand og fortsætter med at køre som før. Hvis brugeren beslutter at trykke på advarslen, flyttes din app derefter til sin baggrundsstatus, , hvor den er suspenderet, men forbliver i hukommelsen.

iOS sender dig en række beskeder for at fortælle dig præcis, hvad der sker, samt at give dig mulighed for at tage handlinger som f.eks. Gem brugerdata og statsoplysninger, som betyder at gemme det punkt, hvor brugeren var i appen. Fordi appen er i baggrunden og stadig i hukommelsen, er relancering næsten øjeblikkelig.

En apps objekter forbliver i hukommelsen, så de behøver ikke genoprettes, når appen genstarter. Hvis hukommelsen bliver begrænset, kan iOS rense baggrundsapplikationer for at gøre mere plads til forgrundsappen.

Da disse afbrydelser forårsager et midlertidigt tab af kontrol af din app, bliver touch-hændelser ikke længere sendt til din app.

Begivenhedens rækkefølge starter altid på samme måde - med applicationWillResignActive: Besked sendt til din appdelegeret, når appen er ved at flytte fra aktiv til inaktiv tilstand. I denne metode skal du sætte pause i igangværende opgaver, deaktivere timere, sænke OpenGL ES-billedhastigheder og generelt sætte tingene i venteposition.

Hvad der sker efter dette afhænger af a) arten af ​​afbrydelsen, og b) hvordan brugeren reagerer på afbrydelsen. Din app kan enten flyttes til baggrunden eller genaktiveres.

Hvis brugeren reagerer på afbrydelsen eller har startet en anden app, flyttes din app til baggrunden.

De næste to kugler forklarer de meddelelser, din app kan reagere på, efter at den er flyttet ind i baggrunden:

  • The applicationDidEnterBackground: meddelelse: Når din app først går ind i baggrundsstatus, er det sendte ansøgningenDidEnterBackground: besked. I denne metode skal du gemme alle ubesvarede data eller tilstand (den aktuelle visning, valgte valg og ting som den) til en midlertidig cache-fil eller til præferencedatabasen på disken.

    Selvom din app kommer ind i baggrundsstaten, har du ingen garanti for, at den forbliver uendelig. Hvis hukommelsen bliver begrænset, vil iOS rense baggrundsapplikationer for at gøre mere plads til forgrundsappen.Du skal gøre alt, hvad der er nødvendigt for at kunne genoprette din app, hvis den efterfølgende ryddes fra hukommelsen.

    Hvis din app bliver renset, når den er i denne suspenderede tilstand, , modtager den ingen besked om, at den er fjernet fra hukommelsen. Derfor skal du gemme alle data, når du modtager applicationDidEnterBackground: beskeden.

    Når din delegat er sendt til applicationDidEnterBackground: -metoden, har din app en ubestemt tid til at afslutte tingene. Hvis metoden ApplicationDidEnterBackground: ikke returneres før tiden løber ud (eller hvis din app ikke kræver mere eksekveringstid fra iOS), afsluttes din app og udrenses fra hukommelsen.

    Hvis din app anmoder om mere eksekveringstid, eller den har erklæret, at den udfører baggrundsudførelse, kan det fortsætte med at køre, efter at metoden Returner applicationDidEnterBackground: returneres. Hvis ikke, flyttes dit (nu) baggrundsapplikation til tilstanden suspenderet kort efter at have returneret fra applicationDidEnterBackground: -metoden.

    Hvis appen er i baggrunden, kan den derefter genstartes. Dette kan ske, hvis brugeren vælger appen fra startskærmen eller multitaskingslinjen, eller den bliver lanceret af systemet, hvis appen behandler hændelser i baggrunden eller overvåger en væsentlig lokaliseringsændring, for eksempel.

  • applicationWillEnterForeground: meddelelse: Når din app genstartes fra baggrunden, sendes den til programmetWillEnterForeground: message. I denne metode skal du fortryde hvad du gjorde i applicationDidEnterBackground: metoden.

Hvis brugeren ignorerer SMS-beskeden, eller appen genstartes fra baggrunden, genaktiveres din app og begynder at få touch og andre begivenheder.

Når din app genaktiveres, sendes den til programmetDidBecomeActive: besked.

Du kan bruge applicationDidBecomeActive: Metoden til at gendanne appen til den tilstand, den var i før afbrydelsen. Her fortryder du hvad du gjorde i applicationWillResignActive-metoden, f.eks. Genstart eventuelle opgaver, der blev standset (eller endnu ikke startet), mens appen var inaktiv. Hvis appen tidligere var i baggrunden, skal du måske opdatere brugergrænsefladen.

Mens en app er i suspenderet tilstand, sporer systemet og samler (egentlig netsout) begivenheder, der kan have indflydelse på den app, når den genstarter. Så snart din app er kørende igen, leverer systemet disse begivenheder til den. For de fleste af disse begivenheder bør din apps eksisterende infrastruktur bare svare korrekt.

Apps flyttes generelt til baggrunden, når de afbrydes. Men hvis appen blev udarbejdet med en meget tidlig version af SDK'en eller kører på en tidlig version af operativsystemet, der ikke understøtter multitasking - eller hvis du beslutter dig for, at du ikke vil have din app kørt i baggrunden og du indstiller UIApplicationExitsOnSuspend nøglen i dens Info. plist fil - iOS afslutter din app.

Selvom din app understøtter multitasking, skal du stadig være forberedt på, at din app bliver dræbt uden nogen underretning.Brugeren kan dræbe apps eksplicit ved hjælp af multitaskingslinjen. Hertil kommer, at hvis hukommelsen bliver begrænset, kan systemet fjerne apps fra hukommelsen for at gøre mere plads. Hvis det fjerner din suspenderede app, , giver den dig ingen advarsel !

Når din ansøgningsdelegeret er sendt, sendes programmetWillTerminate: meddelelse i ikke-multitaskingsapplikationer, eller dem der kører i baggrunden, skal du gøre de samme slags ting, du gør i applicationDidEnterBackground: bortset fra denne gang gør du dem, fordi din app vandt kommer ikke tilbage fra baggrunden.

Din ansøgningWillTerminate: Metodeimplementering har en begrænset tid til at gøre, hvad den skal gøre og returnere. Længere end det, og din app opsiges og ryddes fra hukommelsen.

Hvad skal jeg gøre, når den normale behandling af min iOS-applikation afbrydes? - dummies

Valg af editor

Hvem er St. John Evangelist? - dummies

Hvem er St. John Evangelist? - dummies

Ifølge den katolske kirke, St. John Evangelist, den elskede discipel, var den yngste af apostlene og den tredje til at blive optaget til Jesu privilegerede indre cirkel sammen med St. James den store og st Peter. Han skrev det fjerde evangelium og er også kendt som John den guddommelige for hans høje teologi. Galilea ...

Hvem er St. Matthias? - dummies

Hvem er St. Matthias? - dummies

Ifølge den katolske kirke, St. Matthias, hvis navn på hebraisk betyder Herrens gave, blev udnævnt til en apostel efter forræderi og selvmord fra Judas Iscariot, en af ​​de oprindelige 12 apostle. Matthias var en af ​​Herrens oprindelige 72 disciple fra Jesu dåb i Jordanfloden. ...

Valg af editor

Forbedre ernæringen til børn af enhver alder med Paleo Lifestyle - dummies

Forbedre ernæringen til børn af enhver alder med Paleo Lifestyle - dummies

Paleo Livsstil er sund for både voksne og børn. Den bedste tid til at introducere din kiddos til de næringsrige fødevarer på Paleo diæt er uden tvivl så ung som muligt. Faktisk, når børnene er unge, har de en stor interesse for at opdage sunde spisepraksis. De er fascineret af menneskekroppen og hvordan ...

At vide, hvilke fedtstoffer og olier der er mest stabile til Paleo Cooking - dummies

At vide, hvilke fedtstoffer og olier der er mest stabile til Paleo Cooking - dummies

Fedtstoffer og olier er kun stabile op til en bestemt madlavningstemperatur; Derefter bliver de beskadigede og kan resultere i betændelse - en bestemt Paleo madlavning nej-nej. Din Paleo Fat / Olies stabilitet før madlavning er afgørende. Hvis du tilbereder en olie med høj varme, skal du sørge for at din olie er stabil nok til at klare det ...

Valg af editor

Tilføj JavaScript-sammenligningsoperatører til betingelseserklæringer - dummies

Tilføj JavaScript-sammenligningsoperatører til betingelseserklæringer - dummies

JavaScript bruger sammenligningsoperatører indenfor betingelser for at gøre numeriske eller alfabetiske sammenligninger af variabler med andre variabler eller værdier. Ved hjælp af disse operatører kan du bestemme, om en variabel er større end, mindre end eller lig med en anden variabel eller værdi. Du kan også bruge kombinationer af disse sammenligningsoperatører. Navn Operator Eksempel Bemærkninger Ligestilling == ...

Hvad skal jeg gøre, når den normale behandling af min iOS-applikation afbrydes? - dummies

Hvad skal jeg gøre, når den normale behandling af min iOS-applikation afbrydes? - dummies

På en iOS-enhed, kan forskellige begivenheder udover opsigelse afbryde din app for at tillade brugeren at reagere, og din app flytter til inaktiv tilstand. Hvis brugeren vælger at ignorere en afbrydelse, flytter din app tilbage til den aktive tilstand og fortsætter med at køre som før. Hvis brugeren beslutter at trykke på advarslen, ...