Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?

Indholdsfortegnelse:

Video: Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?

Video: Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?
Video: Sådan skifter du din MitID adgangskode 2024, Marts
Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?
Hvad sker der præcist, når du skubber en Android-app fra den seneste apps liste?
Anonim
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.
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-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:

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 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 dirigerer i baggrunden.

At indse, at musik måske har været et dårligt valg, har jeg også testet med USA Today app. 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 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øjagtigt det samme som at lukke en app - generelt (for apps der definer 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.

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 og svarskredsen af livet, kom tilbage med nogle egne undersøgelser for at afrunde 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

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.

Anbefalede: