Når du sveiper en app av Android for tiden varige-apps liste, hva skjer med søknaden og data? Les videre så vi undersøker
Dagens Spørsmål &.; Svar session kommer til oss courtesy of Android entusiast-en underavdeling av Stack Exchange en community-drevet gruppering av Q & A nettsider Android Enthusiast leseren Eldarerathis er. nysgjerrig på app-sveip funksjonalitet som gjør det mulig å trekke opp din liste over kjørende programmer via på hjem-knappen og deretter swipe dem til høyre, antakelig for å lukke dem: listen siste apps i Ice Cream Sandwich lagt evnen til å swipe apps ut av listen, og dermed forkaster dem permanent (og så vidt jeg vet dette er en vanilje funksjon, ikke en CM /custom ROM en). Dokumentasjon og plattform høydepunkter synes ikke å dekke under-the-hood hjemkomsten av denne funksjonaliteten, men jeg er nysgjerrig på å vite hva systemet faktisk gjør. Videre legger til min nysgjerrighet, bestemte jeg å gjøre en rask test: jeg startet opp musikk på en CM9 installere, og rygget ut av det. Jeg så sjekket de siste apps liste og så det var faktisk der (og i riktig tilstand, basert på miniatyrbildet). Jeg gikk inn på Innstillinger >. Søknader og kraft stanset musikkprogrammet, men det var fortsatt oppført i den siste listen, fører meg til å tro det ikke er koblet til prosesser dvelende i bakgrunnen Innser nå at Music kan ha vært et dårlig valg, jeg også testet med USA Today app. Dette utstilt i utgangspunktet den samme atferd, og det virket som det ble tvunget til å "relansering" etter kraft stopp (som er fornuftig) om miniatyr i listen siste apps ikke reflekterer dette (bufret, jeg gjetter?). Så, hva som faktisk skjer på OS-nivå når du sveiper en app ut av den siste listen? Betyr det bare tømme appens data ut av RAM og søppel samle det, ødelegger sin lagret tilstand? Hva er det som skjer når du sveiper app av listen? Android Enthusiast bidragsyter Austin Mills tilbyr noen innsikt: Dra apps ut av den siste apps liste er vanilje, og ja, ikke godt dokumentert. Dette har vært tema for en anstendig mengde diskusjon om ulike Android-fora ... konsensus synes å være best beskrives her i noen kommentarer: at atferden er lik, men ikke akkurat det samme som å lukke en app - generelt (for programmer som ikke definerer eksplisitt tilbakeknappen håndtering) det er det samme som å slå tilbake nok ganger fra et program som du gå ut av det. koblingen har noen flere detaljer om detaljene, men generelt kan du tenke på det som å avslutte programmet. Spesifikk til musikkprogrammet, tror jeg det begynner en tjeneste, så mens oppgaven selv (i Musikk-applikasjonen /UI) kan bli stengt, fortsetter tjenesten til å kjøre i bakgrunnen slik at musikken ikke plutselig stoppe bare fordi oppgaven fikk ryddet opp for minnehåndtering grunner. Det kan ha påvirket hva du så Deretter deltar i spørsmål-og-svar sirkel av liv, Eldarerathis kom tilbake med noen undersøkelser av sine egne for å runde ut svaret. I ser ut til å ha funnet den magiske søkeord som førte til noen forklaringer fra Google-ansatte. Spesielt fant jeg et par forskjellige steder hvor Dianne Hackborn forklarer hva som skjer når du sveiper noe ut av den siste listen. Den første er en kommentar på en av hennes -innlegg: [W] hat skjer spesielt når du sveiper bort en fersk oppgave er det: (1) dreper eventuelle bakgrunns eller tomme prosesser av programmet ( se her for hva dette betyr), og (2) bruker det nye API for å fortelle noen tjenester av søknaden om oppgaven blir fjernet slik at den kan gjøre hva den mener er hensiktsmessig. Hun også notater i en bloggkommentar: Egentlig fjerne en oppføring i siste oppgavene vil drepe eventuelle bakgrunnsprosesser som eksisterer for prosessen. Det vil ikke direkte forårsaker tjenester til å stoppe, men det er en API for dem å finne ut oppgaven ble fjernet for å bestemme om de ønsker dette til å bety at de bør slutte. Dette er slik at du fjerner si den siste oppgaven i en e-post applikasjonen vil ikke få den til å stoppe å se etter e-post. Hvis du virkelig ønsker å fullstendig stoppe en app, du kan langt trykk på siste oppgaver å gå til app info, og traff kraft stopp der. Tving avslutning er en komplett kill av programmet -. Alle prosesser blir drept, alle tjenester stoppet, alle meldinger fjernet, alle alarmer fjernet, etc. Programmet er ikke tillatt å lansere igjen før eksplisitt bedt om så ser det ut som oppsummering er at sveipe en app ut av listen vil først drepe alle bakgrunnsprosesser for programmet, og deretter bruke onTaskRemoved å varsle app at bakgrunnen oppgaven ble fjernet. På dette punktet ser det ut som det er opp til app å bestemme hva som skjer, så jeg antar det teknisk sett ikke er en hard-og-rask regelen om hva som skjer med app utover det punktet. har noe å legge til forklaringen? Lyder i kommentarfeltet. Vil du lese flere svar fra andre teknologisk avanserte Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.
The Question
Svarene