9Aug
Når du slår en app ud af din Android-liste med aktuelt kørende 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 venlighed af Android Enthusiast-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.
Spørgsmål
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 seneste apps liste iIce Cream Sandwich tilføjede evnen til at skubbe apps ud af listen og dermed afskedige dem permanent( og så vidt jeg ved dette er en vaniljefunktion, ikke en CM / custom ROM-en).Dokumentationen og platformens højdepunkter ser ikke ud til at dække funktionsdygtigheden under denne funktion, men jeg er nysgerrig efter at vide, hvad systemet egentlig 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 checkede derefter listen over nylige apps og så det var faktisk der( og i den rigtige tilstand, baseret på miniaturebilledet).Jeg gik derefter ind i Indstillinger- & gt; programmer og tvingede stoppet musikappen, 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 appen USA Today. Dette viste stort set den samme adfærd, og det så ud til, at det var nødt til at "genstarte" efter kraftstoppet( hvilket giver mening), selvom miniaturebilledet i den seneste apps liste ikke afspejlede dette( cached, gætter jeg?).
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 Enthusiast bidragyder Austin Mills giver noget indsigt:
Swiping apps fra den seneste apps liste er vanille, og ja, ikke godt dokumenteret. 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øjagtigt det samme som at lukke en app - generelt( for apps derdefiner ikke eksplicit tilbageknapshåndtering) det er det samme som at ramme nok gange fra et program, som du forlader.
Linket har nogle flere detaljer om specifikationerne, men generelt kan du tænke på det som at afslutte ansøgningen.
Specifikt for Music-appen, tror jeg, at det starter en tjeneste, så selvom selve opgaven( Music app / UI) kan lukkes, fortsætter tjenesten med at køre i baggrunden, så din musik ikke stopper pludselig bare fordiopgaven blev ryddet ud for hukommelsesstyringsårsager. Det kan have påvirket det, du så.
Da deltog Eldarerathis i sin livsvigtige livskreds 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 det betyder)og( 2) bruger den nye API til at fortælle alle tjenester i applikationen om opgaven, der fjernes, så den kan gøre, hvad den finder 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 forårsage, at tjenester stopper, men der er en API for at finde ud af, at 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 får det til at stoppe 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 dræbes, 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 til at resuméet er, at det at slå en app ud af listen først dræber alle baggrundsprocesser for appen, og brug derefter onTaskRemoved til at underrette appen om, at baggrundsopgaven blev fjernet. På det tidspunkt ser det ud til, at det er op til appen at bestemme, 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.