As respostas fornecidas são precisas, só quero esclarecer do ponto de vista de um desenvolvedor iOS.
O iOS foi projetado para gerenciar o máximo de coisas possível, para que você (e desenvolvedores) não precisem se preocupar com eles. O resultado final é uma abordagem um tanto consistente entre os aplicativos, incluindo os da Apple (mesmo que às vezes a própria Apple faça alguns cantos).
Dito isto, a premissa é:
- O iOS sabe mais sobre memória do que nós. Ele sabe quanto tem e quanto precisa (até certo ponto).
- O iOS tem controle total sobre a memória; tem a palavra final sobre quem usa o quê.
- Se o iOS precisar de memória, ele a encontrará, e isso geralmente é feito matando outros processos que estão ociosos há algum tempo (e há muitas regras nos bastidores, não conhecemos todas, e realmente não sabemos). se preocupe com eles).
- Tudo o que um processador (CPU) faz, consome energia. Absolutamente tudo. Não se esqueça que os computadores são apenas pequenos recipientes de elétrons que os movimentam em espaços muito pequenos.
- Quando um aplicativo é morto, existem alguns protocolos acordados (contratos) que definem o que precisa ser feito. O iOS impõe e carrega esses protocolos. Mas o trabalho deve ser feito, não é gratuito e nem sempre é barato (depende realmente do que é o aplicativo).
Dito tudo isso, supõe-se que a maioria dos usuários feche os aplicativos na esperança de aumentar a vida útil da bateria, com a impressão de que, ao fechar as coisas, menos energia será desperdiçada na manutenção desses aplicativos em execução.
A verdade é que, no iOS, isso quase nunca acontece. Quando você pressiona a tecla Início, o aplicativo é suspenso e não usa mais os recursos que outro aplicativo pode precisar. Se um novo aplicativo (ou mesmo iOS) precisar dessa memória, ele cuidará dele sozinho, mas apenas se for necessário.
Você fecha os aplicativos repetidamente, está forçando o iOS a executar essa tarefa potencialmente cara de realmente descarregar um aplicativo, salvando seu estado e o que não é, com o problema adicional de que, quando você reabre o aplicativo, tudo isso precisa ser revertido e, dependendo da complexidade do aplicativo, muitas coisas devem ser lidas no armazenamento, na memória principal do telefone e assim por diante. Todo esse trabalho extra poderia ter sido evitado se você simplesmente deixasse o aplicativo permanecer no estado "suspenso".
No entanto ...
Em alguns casos (e eles são raros, mas não impossivelmente raros), você deseja matar aplicativos que estão se comportando mal. Os exemplos são (mas não limitados a): aplicativos que lidam com áudio em segundo plano ou serviços assíncronos, como local (onde o aplicativo solicita um local e o iOS deve ir e perguntar onde ele está, por exemplo, disparando o GPS, se necessário) , streaming de vídeo etc.
Eu tive inúmeras instâncias de aplicativos como Lyft, United Airlines e até Twitter, que acabam em um estado de falha (ou simplesmente não funcionam corretamente), ou porque você está em uma rede ruim (o iOS ficou muito ruim em recuperação de algumas redes ruins nas versões 3-4 anteriores) ou a rede simplesmente não responde adequadamente.
Com o tempo, a maioria desses problemas desaparece e o aplicativo começa a funcionar novamente; mas se você realmente precisa que o aplicativo funcione agora , você deve pagar o preço de ter que matá-lo e reiniciá-lo do zero. Você usou mais bateria fazendo isso, mas, ei, você precisava.
E se isso foi confuso, posso lhe dar uma analogia de carro, porque é isso que costumamos fazer o tempo todo.
A analogia do carro
Sei que a tecnologia dos carros avançou e isso não é mais um bom exemplo, mas brinque comigo aqui .
O acionamento do motor de um carro costumava consumir mais combustível do que apenas a marcha lenta. Quando os carros tinham carburadores em vez de injetores, isso era ainda pior; é por isso que desligar o motor quando você para em um sinal vermelho pode teoricamente usar mais combustível do que ficar parado por um minuto. Os carros mais novos têm um mecanismo muito mais eficiente e podem parar o motor, mas permaneçam em um estado semi-iniciado (não vamos entrar muito nos carros aqui).
Você fechando aplicativos, é o equivalente a uma pessoa que desliga o carro em todos os semáforos. Em vez de deixá-lo ocioso até você precisar novamente, normalmente alguns segundos depois.
A analogia não é perfeita, pois a verdade é que carros ociosos ainda usam combustível, enquanto aplicativos suspensos não; no entanto, aos olhos do telefone, eles não estão usando nada relacionado à memória / bateria (desde que não tenham o processamento em segundo plano de nenhum tipo ativo, obviamente).
Você está basicamente desligando o mecanismo toda vez que mata um aplicativo e não deixa que o mecanismo “inteligente” do iOS ocioso do motor cuide dele. Assim, quando a luz ficar verde, basta pressionar o acelerador e o motor está funcionando mais rápido do que se estivesse 100% parado. Iniciar um motor a partir de um estado parado, também usa mais energia do que apenas combustível; você precisa ligar o motor de partida para que o motor possa ser acionado, injetado combustível e faíscas criadas, então ... é muito trabalho nos bastidores. Aplicativos são como motores. :)