On quitting background apps

Kirk McElhearn argues that quitting an app might not speed up your iOS device, but it might make a difference to your battery life.

There is definitely room for improvement in the information Apple presents on background apps. As is, all you get is binary information, a scrolling list of apps that are running, in some form or another. At the very least, some kind of indicator that tells you that the background app is partaking in some battery sucking activity would be useful.



  • Domicinator

    I have gotten into the habit of always closing all background apps when I’ve finished using the phone for awhile. I’m not sure it helps anything or not, but I do it anyway.

    • http://www.laugh-eat.com/ mdelvecchio

      people have all kinds of neuroses. a year ago i watched a guy w/ an ipad neurotically close every app after he was done with it.

    • http://www.laugh-eat.com/ mdelvecchio

      people do all kinds of weird things. a year on a plane i watched a guy w/ an ipad neurotically close every app after he was finished with it. i think its a bit of game theory that hooks up well to OCD tendencies…

  • jtr3

    I once had an Apple Store employee tell me the reason my home button was not responding was because I had too many background apps open and it was bogging down the OS. I was like, “errr, ok…”.

    • DJGhostmare

      in iOS 6 and before, a recently used application that allocates a lot of memory can slow down the response time when pressing the home button. For example, this is especially evident when you run something like a game. The system remembers your spot in the game so you don’t lose your place or have to go through the entire preroll of publisher and technology names.

      iOS 6 frees up resources by closing these apps as they age or use too much, and that avoids a poor user experience and unnecessary crashes.

      This works very differently in iOS 7, though, as Background App Refresh changes those rules.

  • Scott C

    What a poorly researched article. The author has no understanding of what background refresh means in relation to scheduled execution of apps.

    When apps are registered for background refresh, it’s system initiated – the app does not kick around in the background, in memory, and being scheduled for execution by the kernel’s process scheduler. The app is either in memory, and not scheduled, or state-frozen and written back to storage, or in a completely unintialized state. When a background refresh occurs, the kernel initiates a callback to the apps background refresh method, lets it do its thing (subject to all the standard background execution restrictions, including the 10 minute background time limit), and removes it from active scheduling.

    People seem to think apps themselves are capable of running when they want, out of control and sucking down CPU cycles – THEY AREN’T. It’s up to the kernel to schedule CPU cycles for the apps, and it alone determines when and if apps get CPU time. When an app is suspended in the background, if the kernel doesn’t schedule any time for it, there is ZERO ability for it to run. The only exceptions are for kernel controlled API’s like background refresh, VoIP and GPS data monitoring, music playback, etc, which again, are under kernel control and enforcement with respect to CPU scheduling.

    Quitting apps out of the task switcher has zero bearing on background refresh activity. Similarly, apps in the task switcher have zero ability to run on their own; iOS is making those decisions, and actively suspending apps when they have been placed in the background.

    • Larry Davis

      I wish you were correct. This is how it’s supposed to work, but iOS 7 is buggy. My battery sometimes goes down 1% per minute due to background apps. This is per Apple support when I called them. Killing all the background apps “fixed” the problem.

      If it’s working as designed then it sucks.

      • http://tewha.net/ Steven Fisher

        That would be apps like Skype, Facebook, etc, right?

        Those are VOIP apps. They’re allowed to stay in memory. That’s the only real exception.

  • Odi Kosmatos

    “At the very least, some kind of indicator that tells you that the background app is partaking in some battery sucking activity would be useful.”

    Funny thing is, in Mavericks, there is a new feature in the battery icon on the toolbar that shows you which apps are sucking the most battery.

  • David Zentgraf

    The app switcher is not a list of running apps! That’s a very basic misconception. It’s simply a list of all apps you have recently run, in reverse chronological order. You can keep scrolling it to the right and you’ll see apps you haven’t used in weeks. Those are most certainly not actively running. They’re just there because you have used them in the past. Tip: if you switch back to an app and it’s not immediately responsive and/or appears to reload from scratch, it was not active.

    Virtually all apps in this list are not actively running, only the frontmost app you’re currently in is. Some apps may get a chance and permission to do certain things in the background for some limited amount of time or doing some limited activity only. If an app misbehaves while doing something in the background using one of the limited mechanisms provided by the OS itself, then yes, force quitting it from the app switcher will help.

    But again, it makes no sense to simply “quit” every app in the app switcher, because most of them are not doing anything at all. If an app misbehaves in the background, its author should be informed about this and fix it. It can be tricky to figure out what app it is that is eating up CPU cycles, but a combination of CPU meter apps and selectively quitting apps helps.

    • http://www.laugh-eat.com/ mdelvecchio

      yes. at least up until iOS 6, no one ever had a valid reason to manage their apps (ie, close them all). see here:

      http://speirs.org/blog/2012/1/2/misconceptions-about-ios-multitasking.html

      …im not sure how background refresh affects this — eg, does it extend their shelf-life prior to being suspended.

      • David Zentgraf

        Background refresh is only a mechanism with which an app can tell the OS “I’d like to periodically use the WiFi and/or cellular connection to get new data, please wake me up when you decide I am allowed to do so.” I.e. it gives apps a new way to be activated when they’re inactive, it should not affect the regular rules when an app goes to sleep.

        Those background suspension/termination rules may have been adjusted in iOS 7 and/or 7.0 has some bugs which makes the system not work right, I don’t know. But background refresh as such should not put a huge strain on anything due to continuous background activity. Quitting apps to avoid background refreshes shouldn’t do anything, since apps are explicitly woken from inactivity by the OS when they requested background refreshes. I.e. whether you quit them or not, background refreshes are still going to happen.

    • http://www.laugh-eat.com/ mdelvecchio

      not sure what happened to my post?

      anyway, yes. in up to at least iOS 6, it has not been necessary to close your apps:

      http://speirs.org/blog/2012/1/2/misconceptions-about-ios-multitasking.html

      with the Background Refresh in iOS 7, i dont know whats happening exactly (like does it extend the time-till-suspend?)…but Scott C below seems to indicate that it’s still not necessary.

  • Silvano

    Apple!… we need more options for each app… Option to choose the time of each app in background: - Never - 1 min - 5 min - 10 min - Always

    :-)

    • http://www.laugh-eat.com/ mdelvecchio

      not likely. this goes against the notion of iOS being KISS certified (Keep It Simple, Stupid). grandmas arent going to want to manage app background duration limits.

    • David Zentgraf

      Apps can do certain things that need to be done in the background continuously, like playing music or using the GPS system for navigation. Any other app that does not do any of these predetermined things is not running in the background, period.

      Background refreshes, for which an app can register, are supposedly intelligently handled by the OS. iOS actually monitors when you’re likely to use an app based on your habits and wakes those apps up in the background to refresh their data just before you’re likely to use them. I.e. apps registered for background refreshes never run “every 1 min, every 5 mins, always” etc. They are woken up “intelligently” as needed and lay dormant otherwise.

  • tylernol

    Mavericks has metrics for app usage, I would not be surprised if Apple brings that over to iOS. In iOS 7, apps can register for background refresh, and if apps register for too frequent updates, and they are doing power-consuming things like accessing GPS, they will draw down the battery. Users should be able to discern which apps of theirs are the culprits. Right now the best method I have found is to kill off GPS -using apps to save battery life.

  • http://tewha.net/ Steven Fisher

    It’s easy, it’s predictable, and posts like this are mostly bullshit.

    Simple rules, then:

    “Is this an app waiting for a call, like Skype?” – Yes, it might be using power. Stop reading the rules. “Did I quit this less than ten minutes ago?” – Yes, it might be using power. Stop reading the rules. Otherwise, it’s really quit.

    • http://tewha.net/ Steven Fisher

      If you want to get really technical, there’s a few other exceptions. But none of these are going to just silently run in the background. They’re all very much in your face. VOIP is the sneaky one.

  • GFYantiapplezealots

    This is complete BS! Why do people who don’t understand WTF they’re talking about write articles about it?

  • Zepfhyr

    This is why I recommend users install an app like SYSTEM UTIL Dashboard on iOS that shows them which apps are actually running in the background, as well as lists processes that are running, even though an app may no longer be.

    Facebook is notorious for remaining open in the background, and a number of other apps use daemons that continue to run lightly in the background, but don’t contribute to anywhere near the level of battery drain that Facebook does.

    • http://www.johncblandii.com John C. Bland II

      Sounds like Android 2 days. LOL

      Edit: Using task killers, that is.

  • Colin Jensen

    Actually… quitting the most recent apps absolutely prevents crashes on my iPad1.

    First, you need to understand something you can prove to yourself: when you are running an app, your most recent app is probably still in memory. If you switch to your most recent app and it has been evicted by the OS, it will start from a splash screen. But a recent app that is still in memory will come right up to where it was. Go ahead, try and pull up your most recent app using the task switcher and verify this.

    Now here’s what I’ve observed on the iPad1 (iOS5 was the last supported iOS for this device). Many apps crash a lot. Facebook, Instapaper, Risk, and Amazon Instant Video are the ones I notice most.

    Two months ago I realized something: these apps can’t be that crappy on other devices; it has to be something wrong with my iPad. At first I thought maybe I had faulty Flash or something. Then I remembered the iPad 1 has very little memory compared to other iDevs; I noticed something else: when Amazon would crash a bunch of times in a row, I’d get frustratated and switch to whatever I was doing last… and it was STILL IN MEMORY.

    As an experiment, I got the Amazon App into a state where starting it would crash 100% of the time. Then I killed the most recent app and tried again. Bingo: Amazon comes right up.

    Moral of the story: many apps crash when they run out of memory. When your current app runs low or out of memory, iOS 5 FAILS to evict your recent apps from memory. Manually killing recent apps really does help, and my iPad1 now works like it should.

    (Side note: my wife has a WiFi-only iPad, and does not seem to suffer from this issue as badly as my AT&T 3G iPad.)

    • http://www.laugh-eat.com/ mdelvecchio

      i dont think the use case youre describing is whats being advocated, which is that closing their apps speeds things up”, stops them from running forever, etc. youre closing apps because youre running out of memory and apps are crashing.