Che cosa accade esattamente quando si fa scorrere un'app Android dall'elenco delle app recenti?

Sommario:

Che cosa accade esattamente quando si fa scorrere un'app Android dall'elenco delle app recenti?
Che cosa accade esattamente quando si fa scorrere un'app Android dall'elenco delle app recenti?

Video: Che cosa accade esattamente quando si fa scorrere un'app Android dall'elenco delle app recenti?

Video: Che cosa accade esattamente quando si fa scorrere un'app Android dall'elenco delle app recenti?
Video: Cosa fare se non riesci ad accedere al tuo account Microsoft | Recupero dell'account | Microsoft - YouTube 2024, Aprile
Anonim
Quando fai scorrere un'app dall'elenco delle app attualmente in esecuzione su Android, cosa succede esattamente all'applicazione e ai dati? Continua a leggere mentre indaghiamo.
Quando fai scorrere un'app dall'elenco delle app attualmente in esecuzione su Android, cosa succede esattamente all'applicazione e ai dati? Continua a leggere mentre indaghiamo.

La sessione di domande e risposte di oggi ci viene offerta da Android Enthusiast, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte basato sulla comunità.

La domanda

Il lettore Android Enthusiast Eldarerathis è curioso della funzionalità di app-swipe che ti consente di visualizzare l'elenco delle app in esecuzione tramite il pulsante Home e quindi scorrere verso destra, presumibilmente per chiuderle:

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

e forza ha fermato l'app Music, ma era ancora elencata nella lista recente, portandomi a credere che non fosse connessa ai processi che persistevano in background.

Comprendendo ora che la musica può essere stata una scelta sbagliata, ho anche provato con l'app USA Today. Questo ha mostrato fondamentalmente lo stesso comportamento, e sembrava essere stato costretto a "rilanciare" dopo l'arresto forzato (il che ha senso) anche se la miniatura nella recente lista di app non rifletteva questo (memorizzato nella cache, sto indovinando?).

Quindi, cosa succede realmente a livello di sistema operativo quando si fa scorrere un'app dall'elenco recente? Rimuove semplicemente i dati della app dalla RAM e li raccoglie, distruggendone lo stato salvato?

Che cosa sta succedendo esattamente quando fai scorrere l'app fuori dalla lista?

Le risposte

Il contributore appassionato di Android Austin Mills offre alcune informazioni:

Scorri le app dall'elenco delle app recenti è vanilla, e sì, non ben documentato. Questo è stato l'argomento di una discreta quantità di discussioni su vari forum Android … il consenso sembra essere meglio descritto qui in alcuni commenti: che il comportamento è simile ma non esattamente lo stesso di chiudere un'app - in generale (per le app che non definire la gestione esplicita del pulsante back) è la stessa cosa che colpire un numero sufficiente di volte da un'applicazione che si esce da essa.

Il collegamento ha alcuni dettagli in più sulle specifiche, ma nel complesso si può pensare a come uscire dall'applicazione.

Specifico per l'app Music, credo che inizi un servizio, quindi mentre l'attività stessa (l'app / interfaccia Music) può essere chiusa, il servizio continua ad essere eseguito in background in modo che la musica non si interrompa improvvisamente solo perché l'attività è stato eliminato per motivi di gestione della memoria. Questo potrebbe aver influito su ciò che hai visto.

Quindi, partecipando al circolo della vita di domande e risposte, Eldarerathis è tornato con alcune sue ricerche per completare la risposta:

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

per notificare all'app che l'attività in background è stata rimossa. A quel punto sembra che dipenda dall'app decidere cosa succede, quindi immagino che ci sia tecnicamente non è una regola ferrea su cosa succede all'app oltre quel punto.

Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.

Consigliato: