Supponiamo di avere due attività A e B. Si naviga da A a B. L'attività A passa allo sfondo cioè l'attività A è in pausa. L'attività B prende fuoco cioè in primo piano. Quando si fa clic sul pulsante indietro, l'attività B viene estratta dallo stack posteriore e l'attività A si concentra sull'attività A riprende.
Quando si visualizza una finestra di dialogo in attività, l'attività in pausa e la finestra di dialogo vengono visualizzate al clic sul pulsante Indietro, la finestra di dialogo viene chiusa e l'attività riprende (in primo piano).
Quando l'attività non è più in esecuzione, è in background, quindi è in pausa. Sono d'accordo con Raghav Sood su cosa succede quando l'app si arresta in modo anomalo.
Di solito si deve usare il callback onPause() a:
animazioni in stop o altre azioni in corso che potrebbero consumare CPU. Applica modifiche non salvate, ma solo se gli utenti si aspettano che tali modifiche vengano salvate in modo permanente quando escono (come una bozza di email). Rilasciare le risorse di sistema, come ricevitori broadcast, handle per sensori (come il GPS) o qualsiasi risorsa che possa influire sulla durata della batteria mentre l'attività è in pausa e l'utente non ne ha bisogno.
Nota:
compiti multipli possono essere tenute in background in una sola volta. Tuttavia, se l'utente esegue contemporaneamente numerose attività in background, il sistema potrebbe iniziare a distruggere le attività in background per recuperare la memoria, causando la perdita degli stati di attività.
cosa succede quando la memoria è bassa e il sistema deve recuperare la memoria per le operazioni correnti in quel caso le attività in pausa sono distrutte (a seconda della priorità)? – Raghunandan