Hva skjer akkurat når du sveiper en Android-app fra den nyeste applisten?

Innholdsfortegnelse:

Hva skjer akkurat når du sveiper en Android-app fra den nyeste applisten?
Hva skjer akkurat når du sveiper en Android-app fra den nyeste applisten?

Video: Hva skjer akkurat når du sveiper en Android-app fra den nyeste applisten?

Video: Hva skjer akkurat når du sveiper en Android-app fra den nyeste applisten?
Video: Windows WMI: WMI repository, Providers, Infrastructure, and namespaces - YouTube 2024, April
Anonim
Når du sveiper en app fra listen for Android-kjørende apper, hva skjer akkurat med applikasjonen og dataene? Les videre når vi undersøker.
Når du sveiper en app fra listen for Android-kjørende apper, hva skjer akkurat med applikasjonen og dataene? Les videre når vi undersøker.

Dagens Spørsmål & Svar-sesjon kommer til oss med lov av Android Enthusiast-en underavdeling av Stack Exchange, en fellesskapsdrevet gruppering av Q & A-nettsteder.

Spørsmålet

Android Enthusiast Reader Eldarerathis er nysgjerrig på app-swipe-funksjonaliteten som lar deg trekke opp listen over kjørerapper via hjemmeknappen og deretter sveipe dem til høyre, antagelig å lukke dem:

The recent apps list in Ice Cream Sandwich added the ability to swipe apps out of the list, thereby dismissing them permanently (and as far as I know this is a vanilla function, not a CM/custom ROM one). The documentation and platform highlights don’t appear to cover the under-the-hood workings of this functionality, but I’m curious to know what the system is actually doing.

Further adding to my curiosity, I decided to do a quick test: I started up Music on a CM9 install, then backed out of it. I then checked the recent apps list and saw it was indeed there (and in the proper state, based on the thumbnail). I then went into

Settings->Applications

og kraften stoppet Musikk-appen, men den var fortsatt oppført i den siste listen, noe som førte meg til å tro at det ikke var koblet til prosesser som lå i bakgrunnen.

Å realisere nå at musikk kan ha vært et dårlig valg, jeg testet også med USA Today app. Dette viste i utgangspunktet den samme oppførselen, og det virket som om det ble tvunget til å "relaunch" etter kraftstoppet (som gir mening) selv om miniatyrbildet i den nyeste applisten ikke gjenspeiler dette (cached, gjetter jeg?).

Så, hva skjer faktisk på OS-nivå når du sveiper en app ut av den siste listen? Rydder det bare appens data ut av RAM og søppel samler det, ødelegger den lagrede tilstanden?

Hva skjer når du slår appen av listen?

Svarene

Android entusiast bidragsyter Austin Mills tilbyr litt innsikt:

Swiping apps ut av listen Nylig apps er vanilje, og ja, ikke godt dokumentert. Dette har vært temaet for en anstendig mengde diskusjon på ulike Android fora … konsensus synes å være best beskrevet her i noen kommentarer: at oppførelsen ligner på, men ikke akkurat det samme som å stenge en app - generelt (for apper som ikke definere eksplisitt tilbakekoblingshåndtering) det er det samme som å trykke nok tid fra et program som du går ut av det.

Lenken har noen flere detaljer om detaljene, men generelt kan du tenke på det som å avslutte søknaden.

Spesielt for Musikk-appen, tror jeg det starter en tjeneste, så selv om selve oppgaven (Musikk-appen / brukergrensesnittet) kan lukkes, fortsetter tjenesten å kjøre i bakgrunnen, slik at musikken din ikke plutselig stopper bare fordi oppgaven ble slettet for minnehensyn. Det kan ha påvirket det du så.

Da, Eldarerathis deltok i spørsmåls- og svarskretsen av livet, kom tilbake med egen forskning for å avrunde svaret:

I appear to have found the magical search terms that led to some explanations from Google employees. Specifically, I found a couple of different places where Dianne Hackborn explains what happens when you swipe something out of the recent list. The first is a comment on one of her Google+ posts:

[W]hat specifically happens when you swipe away a recent task is it: (1) kills any background or empty processes of the application (see here for what this means), and (2) uses the new API to tell any services of the application about the task being removed so it can do whatever it thinks is appropriate.

She also notes in a blog comment:

Actually, removing an entry in recent tasks will kill any background processes that exist for the process. It won’t directly causes services to stop, however there is an API for them to find out the task was removed to decide if they want this to mean they should stop. This is so that removing say the recent task of an e-mail app won’t cause it to stop checking for e-mail.

If you really want to completely stop an app, you can long press on recent tasks to go to app info, and hit force stop there. Force stop is a complete kill of the app - all processes are killed, all services stopped, all notifications removed, all alarms removed, etc. The app is not allowed to launch again until explicitly requested.

So, it looks like the summary is that swiping an app out of the list will first kill all background processes for the app, then use

onTaskRemoved

å varsle appen om at bakgrunnsoppgaven ble fjernet. På det tidspunktet ser det ut til at det er opp til appen å bestemme hva som skjer, så jeg gjetter det teknisk er ikke en hard og rask regel om hva som skjer med appen utover det punktet.

Har du noe å legge til forklaringen? Lyde av i kommentarene. Vil du lese flere svar fra andre tech-savvy Stack Exchange-brukere? Sjekk ut hele diskusjonstråden her.

Anbefalt: