Why is it better for an iPhone’s battery to NOT close down apps?
I know apparently it’s not a good idea to close apps on your iPhone to save on battery. I’ve read questions and answers like Does force closing apps have any benefit on iOS devices? but it still doesn’t quite gel with me. Sometimes I have found over 50 apps running, so not closing them makes no sense.
Maybe I’m a bit of an old chook and you just can’t teach old dogs new tricks, but can someone here explain WHY it’s better to just keep all these apps running? And when I say “explain” I mean in layman’s terms so I can understand.
You’re not alone. People are just used to their desktop computer habits, and it’s understandable they carry these habits over to their iPhones and iPads.
However, let me try and explain this using an analogy:
Imagine it’s a hot day and you’re outside gardening. You get thirsty, so you go inside to the kitchen, grab a large glass, put some ice in it, and fill it with water. You then drink half of it and empty the rest in the sink before going back outside. Not long later, you get thirsty again, so you go back inside to the kitchen, grab the same glass, put some ice in it, and fill it with water. Again you only drink half of it and empty the rest in the sink!
The above workflow just doesn’t really make sense. Why wouldn’t you take the glass outside with you? And, you’re not only wasting water by emptying it, but you’re spending more time and energy getting that water again.
Likewise, when you quit an app you’re actually using some battery power in the process of doing so (e.g. clearing it from RAM, etc) and then again later when you have to launch it again and load it back into RAM.
So, for a great majority of the time it’s best to leave apps open. Even though they’re open, they’re really just sitting in a type of suspended mode that isn’t using any battery power whatsoever. Yes, the app is still loaded in RAM and taking space, but it’s not actually doing anything - it’s just lying there dormant. And, because it’s not using any battery power in this state, there’s no advantage to quitting it from a battery conservation point of view - especially if it’s an app you know you’re going to be using again and again throughout the day.
There’s also really no advantage to force quitting an app because iOS itself will do this for you if/when it needs to in order to free up RAM. So if you have 50 apps open and they stay open, then iOS hasn’t been pushed to the extent of needing to close any of them to free up memory.
Now, like anything, there are always exceptions to the rule (such as apps that have to perform background tasks). An example of this is one that plays music while you’re doing other things with your phone, or one that’s downloading content in the background, or one that’s counting how many steps you walk in a day, etc. However, iOS has an extremely efficient process for managing background apps/tasks and if you choose to quit these you’re basically saying you don’t trust the operating system to do its job properly.
So, feel free to quit your apps when you have to (e.g. because it’s frozen, etc), but don’t do it to conserve battery power. In fact, if you do, you’ll be achieving the opposite and using more battery power throughout the day!
Summary
- You only need to quit apps if they're not working properly (e.g. an app has frozen, it isn't displaying properly, etc).
- Apps listed in the App Switcher are not necessarily running - in fact most of them are not running at all.
-
Most apps in the App Switcher will be in a suspended state - this means they're not: visible on screen, executing code, using the CPU or GPU, or using the battery. However, they are still resident in memory until they are purged (if necessary) by the system to free up memory:
Suspended - The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code. When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.
Source: See Table 2-3 within the first reference link at end of this answer.
The only apps actually running on your iPhone at any given point in time are the active app (i.e. the one visible on screen) and any others working in the background. (Note: There are some temporary exceptions to this in the case of apps that still need time to complete executing code they already started while they were active - typically this is only in the order of seconds but could theoretically extend to over a minute.).
- In terms of apps running in the background, you can control which apps are permitted to do so (if they're open) by going to Settings > General > Background App Refresh. (Note: Just because you see an app listed here doesn't mean it will run in the background, but disabling it here means it definitely won't!)
- If your iPhone is locked, then the app that was active (i.e. it was visible on screen) when you locked your device is now inactive. However, unless you've only just locked your iPhone and it's still finishing executing code or it's running in the background (e.g. playing music, etc) then it's not using the CPU, GPU or battery.
References
- For more info about the various states an app can be in, refer to Apple's App Programming Guide for iOS: Execution States for Apps.
- For more info about apps running in the background, refer to Apple's App Programming Guide for iOS: Background Execution.
The provided answers are accurate, I just want to clarify from an iOS developer’s point of view.
iOS is designed to manage as many things as possible so you (and developers) don’t have to worry about them. The end result is a somewhat consistent approach across applications, including those from Apple (even tho sometimes Apple itself cuts some corners).
That being said, the premise is:
- iOS knows more about memory than us. It knows how much it has, and how much it needs (to a certain degree).
- iOS has full control over the memory; it has the final word on who uses what.
- If iOS needs memory, it will find it, and this is usually done by killing other processes that have been idle for some time (and there are many rules behind the scenes, we don’t know them all, and we don’t really worry about them).
- Everything a Processor (CPU) does, takes energy. Absolutely everything. Don’t forget computers are just very tiny electron containers that move them around in very tiny spaces.
- When an app is killed, there are some agreed protocols (contracts) that define what needs to be done. iOS enforces and carries these protocols. But work must be done, it’s not free and certainly not always cheap (it really depends on what the App is).
Having said all that, one assumes most users close apps in the hopes to increase battery life, under the impression that, by closing things, then less energy is wasted in maintaining these apps running.
The truth is that, on iOS, this is almost never the case. When you press home, the app is suspended and it no longer uses resources that other app may need. If a new app (or even iOS) needs that memory, it will take care of it by itself, but only if it needs.
You closing the apps over and over, are forcing iOS to make that potentially expensive task of really unloading an app, saving its state and what not, with the added problem that when you re-open the app, all that stuff has to be reverted and, depending upon the complexity of the app, a lot of things must be read from the storage, up into the main memory of the phone, and so forth. All this extra work, could have been avoided if you simply let the app stay in its “suspended” state.
However …
In some instances (and they are rare but not impossibly rare), you want to kill apps that are misbehaving. Examples are (but not limited to): Apps that deal with background audio, or asynchronous services like location (where the app asks for a location and iOS must go and ask around where it is, for example, by firing the GPS if needed), video streaming, etc.
I’ve had countless instances of apps like Lyft, United Airlines, even Twitter, that end up in a broken state (or simply don’t properly work), either because you’re in a bad network (iOS has gotten really bad at recovering from some bad networks in the past 3-4 releases) or the network simply doesn’t properly respond.
In time, most of these problems tend to go away and the app starts working again; but if you really need the app to work now, then you have to go ahead and pay the price of having to kill it and restart it from scratch. You used more battery by doing that, but, hey, you needed it.
And if this was confusing, I can give you a car analogy, because that’s what we tend to do all the time.
The Car Analogy
I know that car technology has advanced and this is no longer a good example, but play with me here.
Firing a Car’s engine used to use more fuel than just idling. When cars had carburetors instead of injectors, this was even worse; that’s why turning your engine off when you stop at a red light, can theoretically use more fuel than just idling for a minute. Newer cars have a much more efficient mechanism and can stop the engine, but stay in a semi-started state (let’s not get too into cars here).
You closing apps, is the equivalent of a person turning the car off at every stop light. As opposed to just letting it idle until you need it again, normally a few seconds later.
The analogy is not perfect, for the truth is, idle cars still use fuel, whereas suspended apps don’t; however, In the eyes of the phone, they are not using anything memory/battery related (as long as they don’t have background processing of any sort active, obviously).
You’re basically turning your engine off every time you kill an app, and you’re not letting the iOS “smart” mechanism of idling your engine take care of it, so when the light turns green, you can simply press the accelerator and the engine is running faster than if it would have been 100% stopped. Starting an engine from a stopped state, also uses more power than just fuel, you need to turn the starter so the engine can be cranked, fuel injected and sparks created, so… it’s a lot of work behind the scenes. Apps are like engines. :)
- If you force-shutdown an app entirely, then when you need to re-open it at a later time, the overhead associated with launching a new instance of the app is more CPU and energy intensive than just switching from one app to another.
- When an app is just sitting there in memory, unless it is actually built to run in the background, it is usually paused or killed and does not consumed any CPU cycle (usually). If it's a fairly simple app, then it will be just sitting there using memory. In such case, the app state is persisted somewhere else (on device storage in the case of Android) so that the app state can be restored later. To give you an idea, a rather long unsent message that I wrote in the Viber app in my phone survived a phone shut down due to battery depletion. After restarting the phone, then Viber, I found the message waiting for me to send it. Halleluja.
- Depending on your memory chip, whether it contains zeros or ones will not make any significant difference in the power consumption. So keeping stuff in memory of not won't significantly make you save battery.
- When an app is in super deep sleep (guys, please confirm this), only a reference to it will be visible in the app switcher as a snapshot of the last screen that was visible from it before going under. I am saying this because one day, I have decided to close all the apps in my iPad, and I was surprised by the amount of apps I had to close. It was more than 60 apps. These cannot be all held in the memory of the iPad. I saw some apps in there, that were used several months ago.
As an analogy ... with you car, if you need to make too many stops during the day and keep stopping and starting the engine, a time will come when the battery will be totally depleted. This can happen if the charging time while you are driving between stops is not long enough to restore the tremendous amount of energy that is sucked out of the battery every time you start the engine. Besides, it's not good for the starter and the overall gas consumption. That's why many delivery truck drivers will keep the engine idling during their short stops.
This analogy is IMO similar to the memory saving myth.