51

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.

  • 31
    The misconception is the „running“ part. Apps in the Switcher are not necessarily running, most of them actually are not. Think of it more as a „most recently used“ list than a process monitor – nohillside Nov 14 '17 at 8:32
  • 3
    Like patrix, I would like to add that iOS closes apps by itself when it's running out of memory, so even though it looks like 50 apps are "running", if you're watching a video there's a huge chance the other 49 have actually been terminated after 2/3 minutes. The app switcher only shows a recent screen capture of those apps at this point. – Coded Monkey Nov 14 '17 at 10:26
  • 5
    @CodedMonkey I mostly agree with your comment, however the one clarification I would make is that the other 49 wouldn't be terminated, they'd be suspended. The difference is that when an app is terminated it is no longer resident in memory, whereas being suspended means it isn't visible on screen, nor is it executing code. In this state it's not using the processor or battery, but is still resident in memory. However, all that said, using your example, my guess would be that iOS may actually terminate some of the other 49 apps, but keep most of them in a suspended state. – Monomeeth Nov 14 '17 at 10:50
  • 8
    We probably need to address the elephant in the room - what makes you say "just keep all these apps running" - and what specifically is "close the apps" - iOS 11 runs three apps maximum and some apps get periodic background activations (by design) if we're talking about the OS in broad strokes / layman's terms. If this is meant to air out the debate of whether to remove the saved app image thumbnails from the multitasking UI - let's just clear that up in the question. – bmike Nov 14 '17 at 12:03
  • 3
    I really horrify my friends by having (right now) 314 tans I safari and 57 apps “open”. – Tim Nov 14 '17 at 12:50
64

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

  1. 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.
  2. For more info about apps running in the background, refer to Apple's App Programming Guide for iOS: Background Execution.
  • 9
    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 To be clear, there's no way that you can tell whether the apps in the app switcher are truly open (ie, resident in memory) or not. – MJeffryes Nov 14 '17 at 10:29
  • 24
    What's draining the battery is starting the app again. Suspending an app is cheap. Resuming a suspended app is cheap. But needing to completely load the app from scratch takes a lot of resources (even if some of them may still be cached): the OS needs to load the app and all its dependent frameworks, the complete app startup code needs to run again, etc. – DarkDust Nov 14 '17 at 10:46
  • 5
    I had always thought that the switcher lists all apps ever opened on the phone up to some maximum limit, in the order they were last used, regardless of whether they were in memory or not. If I scroll back sufficiently far, switching to an app will provoke a fairly long pause as (I assume) the app is loaded from disk. Is there any documentation which confirms your view of its behaviour? – MJeffryes Nov 14 '17 at 10:48
  • 7
    This is a useful answer, but there's no way that iOS would keep 50 apps all suspended, unless each of them has a truly microscopic memory footprint. I switch between large apps all day (Safari, twitter, Facebook, Reddit, YouTube, etc), and I often get a "full reload" switching back to an app only 2 or 3 cards down the most-recently-used list. – BradC Nov 14 '17 at 19:03
  • 3
    @Monomeeth Plenty of apps that are effectively terminated - i.e., require a full reload to resume - are in the app switcher. iOS won't completely terminate, I don't believe, unless there's been a crash - it just stays in the app switcher, not resident in memory and just more or less a convenience to access more readily. – Joe Nov 14 '17 at 20:58
22

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. :)

  • 1
    Haha, I like the analogy (and your answer). :) – Monomeeth Nov 15 '17 at 9:08
  • Question about your comment re: misbehaving apps: "[...] 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 [...]" Do you believe this to be universally more wasteful? While I don't quit apps otherwise, I often assume that a hung-up or otherwise troubled app is likely consuming a lot of resources by repeatedly trying and failing to do whatever it wants to do. I see that this could be less intensive than starting back up from scratch, you believe that is generally the case? – brhfl Nov 15 '17 at 18:29
  • 1
    @brhfl It’s tough to say, each app is a different world. There are some clear signs that something is wrong. If you phone gets very hot in a short period of time while you’re just trying to use an app, it may mean the CPU is being used, of if the phone feels sluggish (animations skipping frames for example). Those are good signs that something is using more resources than it should and in those cases killing the suspected app is the way to go. In general, if an app is suspended (background) even if it wasn’t doing great, it will have no choice but behave; or risk being killed by iOS. – Martin Marconcini Nov 15 '17 at 18:38
1
  1. 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.
  2. 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.
  3. 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.
  4. 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.

-1

Just throwing a differing opinion out there for the sake of discussion. This concept has a certain degree of truth to it, but once you have a certain number of apps open, you're likely going to start seeing diminishing returns on keeping apps suspended.

The more apps you have open, the more ram is going to be getting used up, obviously. Typically each app in memory gets divided up as memory the app itself is actually currently using, memory that the app wants to have on hand, and memory the operating system actually allowed the app to use, which gives you the final amount of memory the app is allowed to use. The reason the app keeps a separate portion of this memory as memory it wants to use, is because the app may need to grow it's heap, but it doesn't necessarily want to do that right off the bat because it's bad for garbage collectors to have large heaps (large heaps = longer garbage collections), so the app will set aside a portion of memory not currently being used, but that can be used by the app exclusively if need arises.

Say the OS allows my app up to 700mb, and the app set's aside 300mb of that memory for itself, leaving 400mb out there for my app to use if it wants, but then another app opens and needs some memory; the OS looks at all the different apps, and decides if it's okay to pull some memory from another app and use it for the new app, in this case it may decide to take 150mb from my apps allowed memory and give it to the new app, requiring the memory to be swapped around to give the new app memory to use (think of this as a reallocation of funds in a business) well, the more apps you have open, the more work the operating system has to do to actually decide which app's memory it can siphon off to give the new app memory.

In this sense, every app that get's opened and the suspended adds complexity to this process, making it more CPU intensive, and eventually requiring potentially more battery power to open future apps than the battery power saved by not closing other apps.

Now mind you, none of that takes into consideration that unless you truly kill an app, there can be background services running that will eat up processing power, for example notifications set to notify you on a timer, etc. On the flip side, some apps don't use a true background service, and actually use push notifications from services like firebase, which don't require the app to be open at any point.

Another thing to consider, the more apps you continually open, the more fragmented that memory will initially be until the OS goes through and cleans up the memory to be more clean and laid out more efficiently, this itself also chews up processing power, and the more memory that is occupied by apps, the more intensive this process will be for your device.

All of this to say, leaving apps open is mostly more efficient, unless too many apps are opened, however I am not sure how many apps need to be open to get to this threshold, if the number exists.

Sources:

SGen garbage collector for Mono: http://www.mono-project.com/docs/advanced/garbage-collector/sgen/

Overview of memory profiler for both iOS and Android Xamarin apps, which shows the way memory is managed by the app (working set, private bytes, memory allocated, etc.) https://blog.xamarin.com/say-hello-to-the-xamarin-profiler/

Some of the information contained in this post requires additional references. Please edit to add citations to reliable sources that support the assertions made here. Unsourced material may be disputed or deleted.

  • 1
    I'm not sure this is correct - are you an iOS developer? I believe that iOS can, at its own discretion, kill suspended apps as needed to free memory, but I strongly doubt it can partially reduce the memory footprint of a suspended app. At least as a user, it appears to be all or nothing. – BradC Nov 14 '17 at 19:53
  • 2
    That's all true for "full" OS's doing simultaneous multitasking of fully running apps. That's not the case for iOS (except for newer split-screen configurations). I'm not saying I am positive you are wrong, I'm just saying your instincts from other OS's may not apply here. – BradC Nov 14 '17 at 20:09
  • 1
    And IMHO you confuse the app switcher with a list of „open“/„in memory“ apps. This is clearly not the case, so the memory footprint may very well be the same for an iPhone with 5 or 20 apps in the switcher – nohillside Nov 14 '17 at 21:20
  • 2
    The Mono/Xamarin framework's memory management is not representative of how native apps/services work on the iOS platform. iOS and the Objective-C/Swift runtime do not implement garbage collection. – Mike Mertsock Nov 15 '17 at 4:33
  • 2
    @TrevorHart it uses Automatic Reference Counting developer.apple.com/library/content/documentation/Swift/… – Mateusz Szlosek Nov 15 '17 at 7:55
-2

Clean cut version: It is better because the OS was designed to make it better to the point that the user would want to keep apps on (or in a "suspended" state) in order to gather more information on your actions[*] later if needed.

Longer version: Apps that are "suspended" will have their state saved in memory so once you want to start them back up the proces of loading everything back will require less time for the procesor and almost no use of the storage unit...With this you can't know if your apps are doing some other things in the background which in a lot of cases they sit there collecting data on you.


[*] To elaborate on the collecting data on you part... apps that are stored in memory can be either "suspended" or active in the background. You as the owner of the device can't know (if you don't possess the knowledge of and some other apps to actively scan CPU usage) what said app is really doing. From the point of view of security I'd advise to shut any app that you aren't going to use for the next 10 mins off.

P.S. This practice is done on Android devices as well btw ...

  • 6
    -1 This answer would be better if it didn't have this undertone of "your phone is designed to spy on you". – Nzall Nov 14 '17 at 14:50
  • 4
    "Your phone is designed to spy on you" doesn't really apply to Apple devices - they don't make money from personal data afaik. – wizzwizz4 Nov 14 '17 at 17:01
  • 1
    @wizzwizz4 Says who? – yo' Nov 14 '17 at 17:57
  • 1
    @yo' Says my inability to find evidence to suggest that they do. Assume good faith, and all that. – wizzwizz4 Nov 14 '17 at 17:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .