iOS and Multitasking: How Apple Can Improve Background App Information

I was having a Twitter discussion this morning with Shane Richmond, after he posted this article on his website: Why forcing an iOS app to quit won’t speed up your device. While I agree in principle with what he says in that article, I disagree with part of his conclusions. He says:

If an app is malfunctioning then, yes, forcing it to quit is the answer. But in normal use force-quitting apps will not make a difference.

The thing is, it may make a difference, but not in speed; it may make a difference in battery life.

First, a brief overview. As Apple explains, “Multitasking is a feature of iOS that allows applications to perform certain tasks in the background while you are using another application. [...] Multitasking doesn’t slow down the performance of the foreground app or drain battery life unnecessarily.”

photo-1.PNGThe key word above is “unnecessarily”. Because while most apps go into a suspended state when in the background, not all do. In iOS, you can control this in Settings > Background app Refresh. But you won’t find all apps that use your battery “unnecessarily” in those settings. For example, you won’t find Skype, which can use a lot of your battery, listed there. This is, in some ways, to be expected: if you want to get calls via Skype, then the app needs to be running.

But if you use Skype, then forget about it, you may be surprised; this happened to me some months ago. I would have preferred being aware that I had simply forgotten to “quit” Skype on my iPhone that day.

Photo I think Apple needs to make some changes to the way multitasking is shown to users. The first step would be to automatically terminate apps that haven’t been used in a while – 24 hours, 3 days? – and that aren’t accepting push notifications, or using location or geofence services. The second would be to have an indicator, when you view the multitasking bar (press the home button twice), as to which apps are still active, and not suspended. This could be like the Dock in OS X, which has a little blue light under apps that are running.

With this information, users could see which apps are potentially draining their batteries, and would also no longer see a long list of apps that they think are open. Because the interface leads users to think that something is happening with those apps, even if this isn’t the case.

I find it interesting that, with iOS 7, I see some apps with blank windows, as you can see in the screenshot to the right. I never saw this in iOS 6. To me, this suggests that the apps have freed up memory because other apps need memory; therefore, they are not maintaining their window rendering. But I’m not sure about that…

Addendum: One commenter posted that Facebook drains his battery. I’ve heard this a lot, but never seen it happen to me. It’s possible that signing into chat on Facebook – which I don’t do – could have this effect.

Tweet about this on Twitter0Share on Facebook0Share on Google+1Share on LinkedIn0Email this to someone

19 replies
  1. Onge says:

    Good points! Although I tend to think I’d want Apple to automate this more rather than making us do Android-style housekeeping. Could part of that automation be enforcing good practices from app developers?

    If Skype was properly built, it shouldn’t have to use battery in the background at all, should it? A push notification should arrive for an incoming call (and only of if Skype’s servers note your status as “available”). Then you see the caller’s name, and only if you accept the communication would the Skype app actually launch and make the connection. After that, the app would remain running while you’re on the call (even if you switch to using another app), and Apple offers VOIP multitasking for that very purpose. But when you’re not actually on a call, then Skype app has no legitimate need to do anything at all, or use any battery. And in fact the system should be able to quit it and free up memory when needed, and incoming calls would be unaffected.

    But it seems to me that instead, Skype just stays running and keeps checking in–a 1900s “brute force” method acceptable (maybe) on a desktop computer but not a laptop, and certainly not a phone or tablet. Not when Apple has provided the tools to do it right.

    I’m surprised this failing doesn’t violate the App Store rules. Or maybe it does? And then I’m surprised Apple has late Skype/Microsoft get away with it so long. I’m sure doing it right takes some work, client- and server-side alike. Maybe Skype’s legacy back-end is a bloated beast and hard to tinker with. But plenty of other small and large companies have managed to get push notification working right. Lots of other apps (AIM for instance, tons of games, and of course FaceTime) can receive an incoming communication request even after you force-quit them: proof of push notification being used properly to make best use of battery and system resources.

    Am I missing something? Is there a reason it’s OK for Skype to burn battery just in case a notification might arrive? I for one stopped using Skype over this: I’d love to be available 24/7, but actually incoming calls come less than once a week. Absurd to burn battery and system resources when I’m not actually on a call.

    • Kirk McElhearn says:

      I don’t know what goes on under the hood. But there are many apps that can be doing things while in the background. For example, running apps – that record your steps and location – can do this, so it’s not something that’s totally forbidden.

      • Onge says:

        Agreed–I wouldn’t want to see background processing totally forbidden (and the M7 will solve some of this, for people who have it). Just wouldn’t want to see it abused, which sometimes (Skype!) seems to be the case. Allow background processing for certain things where it’s useful, but automatically shut down (or ban) some other situations. Which actually I thought Apple already did, and so I wonder if Skype is being allowed to “get away with something.”

  2. anonymous says:

    Please don’t spread more FUD about this. That’s really just a list of recently used apps, some of which might still be in memory, but aren’t running. It saddens me to see people “managing” this list unnecessarily. Your comment above sums it up “I don’t know what goes on under the hood.” Stick with that instead of guessing, please.

    • Kirk McElhearn says:

      You’re wrong; they can be running. There’s just no way to know which ones are running and which ones are “recently used.”

      • Steven Fisher says:

        Apps in the background may or may not be purged, but the only bit that can be running is a small portion to handle networking, and *only for specific types of apps*. Other apps will automatically go from “background mostly zombie” to “fully quit” in a few minutes (maybe ten? I forget). iOS 7 may re-awaken the app under some circumstances… but it goes right back to quit.

        A portion of Skype keeps running because it’s a VOIP app. That’s one of the classes of apps that keeps running. (Actually, it’s probably the only one that matters.)

        Manually quitting the app kills it’s background activity a few minutes earlier, or kills a very small background thread that’s supposed to be harmless (but might not be; Skype) that would otherwise not quit.

        • Kirk McElhearn says:

          My point is that users can’t know which apps – even if there aren’t many – are using battery life in the background. It’s good to know that Skype is a culprit, but it would be good to know if there are others.

      • Gerard says:

        He didn’t say they couldn’t be; but that list you see is not a “list of running apps” as you claim. It is a list of recently used apps. Some of them are active: using memory, CPU and battery, some are suspended, taking up memory but not CPU and most are quit and purged from RAM.

        The iOS multitasking screen is more akin to OS X’s dock than its command-tab task bar.

      • matt says:

        when active. but when suspended, they do not. most apps go into a suspended mode rather quickly (exceptions being music, GPS, etc per the article). from what ive read this doesnt change a whole lot in iOS 7 — apps still go suspended after a few minutes, but enabling background refresh allows callbacks to them periodically.

        “Scott C” has some info here:

        “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.”

        …which means closing it early doesnt really do anything.

        • Onge says:

          That’s how I thought it should be too–but in some cases (Skype for one?) it seems to not be true.

          Which is why quitting certain apps (although by no means a practice “everyone needs”) may be useful. And also why I wish for Apple to enforce background restrictions more effectively, rather than adding any complexity or user tasks to the app-switcher.

  3. Nick says:

    “Background App Refresh” doesn’t have anything do to with whether an app is left running in the background or not. It’s used to determine whether an app can opportunistically download new content while the wifi/3G radios happen to be powered up.

    Also, an app using push notifications or geofencing is not running all the time – iOS starts the app to respond to events if necessary.

    Skype is a different class of app; because it is registered as a background VOIP app, it can keep a persistent connection open to the Skype servers. If it uses too much battery (which it did used to do on my iPhone) that’s Skype’s fault – maybe they should be using push notifications for calls.

    The short version is: iOS automatically and transparently closes apps for you, and apart from malfunctioning apps as you mentioned, there is no reason to kill tasks manually. It really bugs me when I see people doing it.

  4. Denis says:

    ” To me, this suggests that the apps have freed up memory because other apps need memory; therefore, they are not maintaining their window rendering. But I’m not sure about that.”

    In iOS, Apps get killed automatically by the OS when the device needs more memory. They get a signal telling them to free memory, and if they don’t release enough of it, they get killed — plain and simple.

    Apps will still be around in your list of open apps, mind you, but when memory is short, they’ll actually be a process without an app that corresponds to it.

  5. Eugene says:

    Facebook seems to be the single most harmful app to my battery life when left to run in the background. It seems to never die, but always requires a refresh when opening the app so I have no idea wth it’s doing. I always force-quit it when I’m done posting baby pictures for my mom to look at.

  6. Hans says:

    I doubt if quitting apps like Skype will result in a better battery life. However, I think just logging off might do the trick.

  7. Sam B says:

    I warn against manually killing background apps. I believe it would technically hit the battery worse because when you relaunch the app it now has to launch from scratch, taking significantly more time with the screen on, and using more CPU cycles, thus using more battery as a whole. I liken it to turning off the engine at stop lights to save gas. While it seems like a good idea, and maybe it is if you’re stuck at a 5 minute light, the act of restarting the car uses more gas than you would have lost while idling.

  8. Timothy Williamson says:

    “I find it interesting that, with iOS 7, I see some apps with blank windows, as you can see in the screenshot to the right. I never saw this in iOS 6.”

    You never saw this in iOS 6 because the multi-tasking app “cards” are a new UI feature in iOS 7. ;-)

    The interesting thing is I can swipe all the way to the right (oldest app in the multi-tasking UI), and I’m not seeing any “blank” app previews. They are all showing a preview of the last screen I viewed within the app.


Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply