Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?
Når du slår en app ud af din Android-liste med aktuelle apps, hvad sker der netop med applikationen og dataene? Læs videre som vi undersøger.
Dagens Spørgsmål & Svar-session kommer til os med venlig hilsen af Android Enthusiast-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.
Spørgsmålet
Android Enthusiast Reader Eldarerathis er nysgerrig efter app-swipe-funktionaliteten, som giver dig mulighed for at trække din liste over kørende apps op via startknappen og derefter skrue dem til højre, formodentlig at lukke dem:
Den nylige apps liste i Ice Cream Sandwich tilføjede evnen til at slette apps ud af listen og dermed afskedige dem permanent (og så vidt jeg ved dette er en vaniljefunktion, ikke en CM / Custom ROM-en). Højdepunkterne i dokumentationen og platformen ser ikke ud til at dække funktionsdygtigheden under denne funktion, men jeg er nysgerrig at vide, hvad systemet rent faktisk gør.
Yderligere at tilføje til min nysgerrighed, besluttede jeg at lave en hurtig test: Jeg startede musik på en CM9 installation, og derefter backed out of it. Jeg kontrollerede derefter listen over nylige apps og så det var faktisk der (og i den rigtige tilstand, baseret på miniaturebilledet). Jeg gik derefter ind
Opsætning-> Applikationer
og kraft stoppede Music-appen, men den blev stadig opført på den seneste liste, hvilket får mig til at tro, at det ikke er forbundet med processer, der dvæler i baggrunden.At indse, at musik måske har været et dårligt valg, testede jeg også med USA Today app. Dette viste stort set den samme adfærd, og det så ud til, at det blev tvunget til at "genstarte" efter kraftstoppet (hvilket giver mening), selvom miniaturebilledet i den seneste apps liste ikke afspejlede dette (cached, jeg gætter?).
Så hvad sker der faktisk på OS-niveau, når du slår en app ud af den seneste liste? Gør det bare at rydde appens data ud af RAM og affald indsamle det, ødelægge sin gemte tilstand?
Hvad sker der, når du slår appen ud af listen?
Svarene
Android entusiast bidragyder Austin Mills giver nogle indsigt:
Swiping apps ud af listen over nylige apps er vanille, og ja, ikke veldokumenteret. Dette har været genstand for en anstændig diskussion om forskellige Android forums ... konsensus synes at være bedst beskrevet her i nogle kommentarer: At adfærd ligner, men ikke nøjagtig det samme som at lukke en app - generelt (for apps der definer ikke eksplicit tilbageknapshåndtering) det er det samme som at trykke nok gange fra et program, som du forlader.
Linket har nogle flere detaljer om specifikationerne, men generelt kan man tænke på det som at afslutte ansøgningen.
Specielt for musikappen mener jeg, at det starter en tjeneste, så selvom selve opgaven (musikappen / brugergrænsefladen) kan lukkes, fortsætter tjenesten med at køre i baggrunden, så din musik ikke stopper pludselig bare fordi opgaven blev slettet for hukommelsesstyringsårsager. Det kan have påvirket det, du så.
Derefter, Eldarerathis deltog i spørgsmålet om og svar på livskredsen, med nogle egne undersøgelser for at afrunde svaret:
Jeg synes at have fundet de magiske søgeord, der førte til nogle forklaringer fra Google-medarbejdere. Specifikt fandt jeg et par forskellige steder, hvor Dianne Hackborn forklarer, hvad der sker, når du slår noget ud af den seneste liste. Den første er en kommentar til en af hendes Google+ indlæg:
[W] hat sker specifikt, når du slår væk en nylig opgave er det: (1) dræber enhver baggrund eller tomme processer i applikationen (se her for hvad dette betyder), og (2) bruger det nye API til at fortælle nogen tjenester af Ansøgningen om opgaven fjernes, så den kan gøre, hvad den mener, er passende.
Hun noterer sig også i en blog kommentar:
Faktisk vil fjernelse af en post i de seneste opgaver dræbe eventuelle baggrundsprocesser, der eksisterer for processen. Det vil ikke direkte få tjenester til at stoppe, men der er en API for dem at finde ud af, opgaven blev fjernet for at afgøre, om de vil have det til at betyde, at de skal stoppe. Det er sådan, at fjernelse siger, at den seneste opgave med en e-mail-app ikke medfører, at den stopper med at kontrollere efter e-mail.
Hvis du virkelig vil stoppe en app helt, kan du længe trykke på de seneste opgaver for at gå til appinfo og slå kraftstop der. Force stop er en komplet dræb af appen - alle processer bliver dræbt, alle tjenester stoppet, alle meddelelser fjernet, alle alarmer fjernet osv. Appen må ikke starte igen, før det udtrykkeligt er anmodet om.
Så det ser ud som resuméet er, at det at slå en app ud af listen først dræber alle baggrundsprocesser til appen, og brug derefter
onTaskRemoved
at underrette appen om, at baggrundsopgaven blev fjernet. På det tidspunkt ser det ud til, at det er op til appen at afgøre, hvad der sker, så jeg gætter der teknisk er ikke en hård og hurtig regel om, hvad der sker med appen ud over det punkt.
Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.