Le risposte fornite sono accurate, voglio solo chiarire dal punto di vista di uno sviluppatore iOS.
iOS è progettato per gestire il maggior numero di cose possibile, così tu (e gli sviluppatori) non dovrete preoccuparvi di loro. Il risultato finale è un approccio in qualche modo coerente tra le applicazioni, comprese quelle di Apple (anche se a volte Apple stessa taglia alcuni angoli).
Detto questo, la premessa è:
- iOS sa di più sulla memoria di noi. Sa quanto ha e quanto ha bisogno (fino a un certo punto).
- iOS ha il pieno controllo della memoria; ha l'ultima parola su chi usa cosa.
- Se iOS ha bisogno di memoria, la troverà, e questo di solito viene fatto uccidendo altri processi che sono inattivi da un po 'di tempo (e ci sono molte regole dietro le quinte, non le conosciamo tutte e non lo facciamo davvero preoccuparsi per loro).
- Tutto ciò che fa un processore (CPU) richiede energia. Assolutamente tutto. Non dimenticare che i computer sono solo minuscoli contenitori di elettroni che li muovono in spazi molto piccoli.
- Quando un'app viene uccisa, ci sono alcuni protocolli (contratti) concordati che definiscono cosa deve essere fatto. iOS applica e trasporta questi protocolli. Ma il lavoro deve essere fatto, non è gratuito e sicuramente non è sempre economico (dipende davvero da cosa sia l'App).
Detto questo, si presume che la maggior parte degli utenti chiuda le app nella speranza di aumentare la durata della batteria, con l'impressione che, chiudendo le cose, si sprechi meno energia nel mantenere in esecuzione queste app.
La verità è che, su iOS, questo non è quasi mai il caso. Quando premi home, l'app viene sospesa e non utilizza più le risorse di cui potrebbero aver bisogno altre app. Se una nuova app (o anche iOS) ha bisogno di quella memoria, se ne occuperà da sola, ma solo se ne ha bisogno.
Chiudendo le app ripetutamente, stai forzando iOS a svolgere quel compito potenzialmente costoso di scaricare davvero un'app, salvandone lo stato e cosa no, con l'ulteriore problema che quando riapri l'app, tutte quelle cose devono essere ripristinate e, a seconda della complessità dell'app, molte cose devono essere lette dalla memoria, nella memoria principale del telefono e così via. Tutto questo lavoro extra, avrebbe potuto essere evitato se si lascia semplicemente l'app nel suo stato "sospeso".
Tuttavia ...
In alcuni casi (e sono rari ma non incredibilmente rari), vuoi uccidere le app che si comportano male. Esempi sono (ma non limitati a): App che si occupano di audio di sottofondo o servizi asincroni come la posizione (dove l'app richiede una posizione e iOS deve andare e chiedere in giro dove si trova, ad esempio, sparando il GPS se necessario) , streaming video, ecc.
Ho avuto innumerevoli istanze di app come Lyft, United Airlines, persino Twitter, che finiscono in uno stato interrotto (o semplicemente non funzionano correttamente), sia perché sei in una cattiva rete (iOS è diventato davvero cattivo in recupero da alcune reti difettose nelle ultime 3-4 versioni) o semplicemente la rete non risponde correttamente.
Col tempo, la maggior parte di questi problemi tende a scomparire e l'app riprende a funzionare; ma se hai davvero bisogno che l'app funzioni ora , devi andare avanti e pagare il prezzo di doverlo uccidere e riavviarlo da zero. In questo modo hai usato più batteria, ma, ehi, ne avevi bisogno.
E se questo fosse confuso, posso darti un'analogia con l'auto, perché è quello che tendiamo a fare sempre.
L'analogia con l'auto
So che la tecnologia automobilistica è avanzata e questo non è più un buon esempio, ma gioca qui con me .
Sparare il motore di un'auto consumava più carburante del semplice minimo. Quando le auto avevano carburatori invece di iniettori, questo era anche peggio; ecco perché spegnere il motore quando ci si ferma a un semaforo rosso, teoricamente può consumare più carburante di un minimo al minimo. Le auto più recenti hanno un meccanismo molto più efficiente e possono fermare il motore, ma rimangono in uno stato semi-avviato (non entriamo troppo nelle auto qui).
Chiudi le app, è l'equivalente di una persona che spegne l'auto ad ogni semaforo. Invece di lasciarlo inattivo fino a quando non ne avrai più bisogno, normalmente pochi secondi dopo.
L'analogia non è perfetta, perché la verità è che le auto inattive usano ancora carburante, mentre le app sospese no; tuttavia, agli occhi del telefono, non usano nulla di memoria / batteria (purché non abbiano un'elaborazione in background di alcun tipo attiva, ovviamente).
Fondamentalmente stai spegnendo il tuo motore ogni volta che uccidi un'app e non stai lasciando che il meccanismo "intelligente" di iOS al minimo si occupi di esso, quindi quando la luce diventa verde, puoi semplicemente premere l'acceleratore e il motore gira più veloce di quanto se fosse stato arrestato al 100%. L'avvio di un motore da uno stato di arresto, consuma anche più potenza del solo carburante, è necessario ruotare il motorino di avviamento in modo che il motore possa essere avviato, iniettato carburante e creato scintille, quindi ... è un sacco di lavoro dietro le quinte. Le app sono come motori. :)