Public Service Announcement: You Should Not Force Quit Apps on iOS (daringfireball.net)
John Gruber, writing for DaringFireball: The single biggest misconception about iOS is that it's good digital hygiene to force quit apps that you aren't using. The idea is that apps in the background are locking up unnecessary RAM and consuming unnecessary CPU cycles, thus hurting performance and wasting battery life. That's not how iOS works. The iOS system is designed so that none of the above justifications for force quitting are true. Apps in the background are effectively "frozen", severely limiting what they can do in the background and freeing up the RAM they were using. iOS is really, really good at this. It is so good at this that unfreezing a frozen app takes up way less CPU (and energy) than relaunching an app that had been force quit. Not only does force quitting your apps not help, it actually hurts. Your battery life will be worse and it will take much longer to switch apps if you force quit apps in the background. [...] In fact, apps frozen in the background on iOS unfreeze so quickly that I think it actually helps perpetuate the myth that you should force quit them: if you're worried that background apps are draining your battery and you see how quickly they load from the background, it's a reasonable assumption to believe that they never stopped running. But they do. They really do get frozen, the RAM they were using really does get reclaimed by the system, and they really do unfreeze and come back to life that quickly.
Baloney. I have heard this argument so many times from OS developers. What does "effectively frozen" and "severely limited" mean? They are either frozen or they aren't. If they aren't frozen then they are taking up resources.
If iOS is designed so well then why in the hell should it matter if a user force-q1uits everything only to re-open it later? This makes me suspicious that they don't want you turning off certain things.
I was going to press control-alt-delete to bring it up, but I couldn't figure out how to plug in a keyboard... ;)
I don't care if it's 90,000 hectares. That lake was not my doing.
I have an iphone 6s, and I see the location icon come on when I check the weather (using the native app), because it is set to reporting local weather. Mostly, it goes away in a bit - but I have seen the icon stay on many times even when I have moved away from the weather app. I have to manually kill the weather app to make the location tracking go away.
Mr. Gruber must not actually own an iPhone.
I turned off background refresh on 90% of the apps that I use on my iPhone 6s to conserve bandwidth (2GB monthly cap) and battery life. Very few apps need real time updates. The rest can wait for updates until I'm ready to deal with them on my home wireless network.
If I keep just a few apps open it becomes absolutelly unusable, even with Background App Refresh disabled.
I force quit apps on my iPad because over time the list of apps that are 'running' gets cluttered with things I don't often use. I leave apps alone that I use frequently. I don't really care if this costs me some CPU cycles some day when I want to re-launch the app I quit.
Modern app appers only APP APP apps, NOT LUDDITE force quit!
Apps!
I don't know what it is about those two, but unless I force quit them, they'll suck my battery dry within half a day (for Waze) or 2 hours (for Youtube)
The point was don't force quit apps to save battery life. If you want to force quit apps because you're paranoid, then go for it.
Might as well turn the phone off tho - how do you know force quitting apps actually stops it? How do you trust anything at all on your phone if you don't trust that an app does what the developer publishes that it does?
"Old man yells at systemd"
There might be a discussion for bootups eating battery, but if you want an app to have performance RAM (and everyone writes their "mobile" bloatstains to waste plenty) you'll need to close recent apps. Not older ones, since iOS will silently kill those sessions (the slot in Recent becomes a placebo) as it desires. Hope it wasn't anything important.
This only matters for limited cases, say a phone game. And probably affects you less if you're overpaying (either for a laughable contract or the $800 iSubscription) to always have the latest models.
I force-quit some apps that are simply bugged, and reopening is a workaround. Even that Weather app (Apple), needs sometimes to be closed and reopened (or it doesn't refresh the weather / location)
Slashdot, fix the reply notifications... You won't get away with it...
This is asinine. And it's made worse by the fact that when you do use the app-switcher to switch to an open-in-the-background app, it's actually showing you a screenshot of the app as it was sometime prior to it getting frozen. When I reactivate the calculator app (not from a force-click, but open in the background), it shows a screenshot of calculator and I start tapping the numbers, but then the app actually becomes active and many of my taps were missed. I'd like it better if it showed a loading screen or something that would indicate that the app isn't ready yet. These things really aren't as quick as they say they are.
I usually use only 2-3 apps at time. I force-quit everything else and use app-switching to get between them.
It's just easier for me that way.
Oh, to reduce battery drain I just disable background-app capability.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
I use an Android phone. Aside from some small, personal apps I wrote for myself a while ago, I am not really an app developer and don't have an in-depth understanding of the issues.
But my annoyance is this: there are apps that I only use once a month and others not even that. I definitely don't need them running in any form, even with the lightest footprint and some of them are consuming power. They keep coming back the instant I killed them. Why do the modern OS vendors assume they know best? I would like to have control over the execution policy, not the app developer. In Windows, I could remove entries from the startup, task scheduler etc. In Unix, I have full control. Why can't I do that in modern operating systems? Yes, I am aware there are startup editors in Android. I found them unreliable or inadequate.
I as the user, have much better context information on how my apps need to run. Sure, people can shoot themselves in the foot, but provide a means to restore defaults when custom configurations aren't working, but don't take away control altogether.
Every commercial app developer wants his app to be ready to go. In Windows that meant far too many developers would add their apps to system startup. With enough such entries, it made a large proportion of consumer machines to go sluggish by swapping and many systems were upgraded just because the users did not know how to clean up their startup items. Sure, the modern systems prevent all that, but that does not mean I should not have any control. The lesson here is that developers cannot be trusted to be respectful of shared system resources (and so the OS takes over more control), not that the users cannot be trusted. At least, let the apps be better controlled in developer mode. It took what 5 or 6 versions before Google started allowing users to rescind permissions? I want more permissions (and with better granularity) to rescind.
Well, that was my rant. If I missed any obvious solutions, enlighten me.
And that misbehavior has nothing to do with the RAM usage. Th epost is about the claim that you need to manually kill apps to manage RAM usage.
settings->battery. Scroll to bottom for a report of how much battery each app has used. View it as last 24 hours, or as last 7 days. and FYI, (for me) Apple Mail, when connected to a corporate exchange server, sucks battery in the background. 30% overnight iphone 6s IOS 10.3
I'll just hook my iPhone up to this power outlet at the gas stat--BOOM! MacGruber!
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Another example to doubt this claim: if anyone uses the Shopify POS App, you probably see that as you do more transactions with the swiper, the app gets slower and slower...and if you close and restart the app, it works fine again. Maybe this is true with some Apps, but I don't think you can say with all Apps...
I call bullshit. Leave Slack - which has NO notifications enabled, nor any other features allowed, alive overnight and check battery usage the next day and explain how a "frozen" app can take that much electricity.
ALWAYS force-quit Slack and other energy-hungry apps when you're not using them.
Sure, for older OS versions, you may have found a hack or trick that improved your experience. So you got used to using it. But guess what? Over the years the developers have been iteratively improving their products. And they are aware of the issue you had in the first place, and probably fixed it a long time ago. Plus you now have better hardware than you did, relaxing many of the limits you were running into before. Trust that the designers of operating systems aren't relying on you to go and do manual processes to improve your system performance, but made sure things ran optimally without needing such hacks. Such things may in fact be hurting performance. I am specifically talking about old tricks still in use, of course, like force closing apps. Newer tips are more likely to actually have been tested on the OS you're using (but still be wary).
Another example, Windows will use unused memory to cache programs and files. Because unused memory is wasted memory. Despite this, you can run "RAM Cleaners" that eat up all your memory and quickly free it, forcing windows to dump its cache, slowing down your PC likely immediately as apps try to use objects that have to be recached from disk. But at least the RAM is clean!
I personally grew up in the era of MS-DOS. When you deleted a file, it was gone. Then as Windows 9x came along they had this fancy Recycle Bin. I didn't need it before, why would I need it now? I would keep doing things the way I was doing it because I knew better. Just bypass the Recycle Bin every time or even turn it off entirely.
A few instances of data loss due to accidental deletions later, I realized perhaps the designers of Windows were smarter than me in at least some respects ,and forced myself to begin using the Recycle Bin. My experience with accidental deletions has much improved.
The same basic advice has been peddled and widely ignored by end users who know better across all major mobile platforms. The reality is this is only true for apps don't take advantage of facilities to sidestep background execution restrictions.
Many app intentionally seek to run continuously in the background to enable persistent stalking and download ads as these activities yield profits for app vendors. It should go without saying facilities exist across all major platforms to accommodate.
https://developer.apple.com/li...
Back when I got my first iPhone (4), started trying out all of the apps it came with, and downloading a few new ones. After about a week or two, I noticed that the battery wasn't lasting as long. This is when I discovered how to view all of the apps that were still... frozen?... in the background. There were dozens of these. I force quit them all, made sure to force quit when I was done with an app, and the battery life went back to normal.
A few years later, I started using some workout apps that time rests and breaks in my routine. I usually used these at night before bed. Over time, I noticed that if I ever left these apps open, the battery would be dead or near dead the next morning, even if the battery was full when I went to sleep.
Apple needs to stop tell us that those background apps don't need to be closed, because they sound like idiots every time they say it.
Use a mock location app set to your preferred location, this is what I do on Android, works fine for me and no battery hassles.
Twinstiq, game news
Attempting to mirror every single RAM write to an SSD within 100 ms would wear out an SSD fairly quickly and dramatically slow down certain common computations. Watch any game for an Xbox console become a slideshow, for example.
With which apps have you noticed this? If you can narrow it down to one, have you tried turning off the app's background sync or location use permission in Settings?
The reason we keep being told 'dont force close you apps' is that if you do, they cannot continue to do 'their thing' quietly in the background.
Their thing is often reporting things back to their developers - your position, actions, etc, etc..
THAT is why every now and then they remind us how foolish we would be not to keep them running.
The very second you load Apple Maps and put it in the background, the GPS is still sucking the fuck out of your battery life, navigating somewhere or not.
That alone proves Apple is full of shit and lying.
ALWAYS kill your maps application after you're done using it, or you're going to quickly find yourself with far less battery life than you thought you had.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
then I have to treat it like it will and will force quit it. Unless I have a way to know that the app is definitely for sure not actively using resources, which currently I don't.
This is why one of the "big" features of Windows 8.1 was the ability to close the WinRT based apps. People are so accustomed to thinking that anything which they're not using is eating away at resources, that everyone requested the ability to close them.
Three years ago, out of curiosity, my colleague and I had a look to see what iPhones were doing from the OS BSD perspective. One thing we found was that to maintain stability processes were sent a SIGKILL to terminate them. It seemed like a hack, however probably reasonable for CPU bound processes. That's why it is good.
The rules remain that if these processes are blocked on I/O the will be unkillable and consume resources until it is restarted.
My ism, it's full of beliefs.
The heaviest power using item on your iOS device is... The SCREEN.
This means when you waste your time force quitting the apps you are in fact using up more battery power than leaving them alone. It also means that since the apps take longer to startup fresh, your screen is eating even more power while you wait for the apps to startup.
As for backgrounding, force quitting apps does NOT quit the background process (if there is one). They all rely on whatever hardware they need to work, and whether the app has the necessary permissions (location services, microphone, background refresh, etc).
And this is 8 years of iOS experience talking.
I shut down apps because I don't trust that they aren't pulling crap in the background. For instance many apps don't give the option to not locate when in background and only give you the options to locate or not. Well, if this is a map app I am forced to allow the locate. But I don't want that little bastard reporting any crap when it is not front and center.
I hate that I have to use facebook messenger to communicate with certain people. I 100% do not trust that crap to run in the background and not pull some privacy raping stunt.
Then there is the BS factor. I suspect that some apps are totally quiet in the background. But other apps are most certainly doing crap. A simple example is my audiobook app is most definitely still doing stuff when I am on other apps; this is a good feature, but a clear and simple proof that an app can do stuff while "hidden". How many other apps are either doing something that I don't want; Or are just badly programmed and just wasting time and energy? If the answer is one or more, then I will continue to swipe up with great glee.
I have a strong suspicion that these useless turds of studies are being promoted by people who really really don't want us shutting down their apps.
A feature that I would love is that I could say without any app being able to stop me (SHUT THE BUGGER DOWN WHEN IN BACKGROUND) and by shut down I mean not a single bit of info goes in or out, and the app doesn't get a single CPU cycle.
Quite simply, why won't the vendors of phones give us the privacy control that I want. For instance, I would love to not only be able to block most apps from having any network access; but I would love to have a granular firewall. For instance my browser could go to sites, but can't go to google anything, for any reason.
It is good practice for consistence.
If even a single app broke the frozen state or took resources from the iphone, the reason to not force quit apps is already null. Not to mention that older iOS version might not be able to do that at all.
In addition, most users who don't keep force quit apps maintain a FULL running app list of all of their apps. Unless the iOS can ensure none of them will affect the user iphone performance, it is not good practice to tell users not force quit apps.
People should not have to resort to drastic measures like force quit. If an application is exited, it should be removed from RAM completely, not 'frozen' or forced to the background.
There is a simple, valid reason (and design principle), for this: security. I do not believe for a second that an application that is 'frozen' has to stay that way, and I can think of at least a dozen ways for an app that is 'frozen' to be activated in the background. And once it is running in the background, who knows what vulnerabilities it exposes to the outside environment?
It is a design principle that I see lacking in both Android and iOS.
And on the Eighth Day, Man created God.
Sounds like what Classic MacOS used to do. Remember when closing a window never actually quit the application? No worries, the OS is smart enough to swap out to virtual memory or some baloney, which never worked well.
Apps in the background are effectively "frozen"
So, at what point does the OS decide to "freeze" an app? Managing the CPU and memory priority of background processes is one of the great, unsolvable problems of OS design. Apple can claim to be really, really good at doing this, but unless the user has some level of control (and every app developer isn't lying and full of crap), iOS can't really do anything better than any other OS.
"Dozens of calculations per second" hasn't been considered computationally expensive for about _40_years_.
The iPhone 7 contains a motion coprocessor chip that performs these calculations and tens of thousands more every second, using a vanishingly small amount of power. Positional data from wifi networks, cell towers, GPS, GLONASS, the compass, and the inertial sensors inside the phone is combined when and where available automatically. What isn't needed is powered down.
Even if getting accurate GPS data is harder in cities, it is irrelevant, given that cities contain way more cell towers and way more wifi networks, and the iPhone knows its position from those automatically in the course of normal operation without even needing to query GPS. ... which it does anyway because the power involved is, again, miniscule. Seriously: If the phone can detect three cell towers - practically a given in any good-sized city - it knows where it is just by being a phone. Ten years ago cell towers didn't provide the necessary positional and timing information for this to be so. Now they almost always do.
Let's all have some more humility here. Knowing something about GPS does not make us experts in the design of the most bleeding-edge mass communications tool on the planet, and/or the networks that drive it.
So change the per-app setting and disallow the app from doing anything at all in the background.
Problem solved, without a bunch of OCD force-quit finger-flicking every couple of hours.
It "freezes" an app the instant you are no longer looking at it on your screen.
For the purposes of a phone, or even split-screen operation of an iPad, this is extremely effective. You are only ever looking at one app - two at most - with perhaps some framework-delivered supporting information on the periphery.
Just because you can't imagine solutions to CPU/memory management for the general case, does not mean there aren't (often obvious) improvements that can be implemented for various specific cases. A small screen where a user tends to do one thing at a time is a perfect example.
The fault here lies with Apple who could resolve this misconception by simply redesigning the switcher screen.
Right now it shows both running and frozen applications so users have no idea which is which and end up trying to kill them all.
Three possible solutions off the top of my head:
There are probably others.
Avantslash - View Slashdot cleanly on your mobile phone.
Apps that use background hooks (music players, downloaders, runners, navigators...) will use some battery if not "quitted", and also other applications that opt in for background usage IF you have 'background app refresh' setting enabled (and most not advanced users have it since it's enabled by default...).
What about the "disk" space it takes to maintain the frozen state of the app? Does force quitting an app free that up? RAM is only one kind of memory on the device, and not the only one that may be in short supply...
Plus, screw Apple for making me say 'apps'. I feel like an asshole every time I do. Popularizing that term might be the worst thing they ever did.
I think the app management, specifically the act of killing off background apps, is just too enjoyable of a thing to do (swipe up to send bits to the nevermore).
The biggest problem my crazy brain finds with background apps is when I am looking to navigate between them. Every historically launched app is there 'in the way' such that I feel compelled to kill off everything but my most consistently used apps (mail, podcasts, browser, etc) so they're easily accessible.
I know that the suggested route here is to put these apps on my home screen (which I do), but I'm somewhat obsessive about keeping things clean there, and find it oddly more time consuming to close the app, hunt and peck through rows of icons than it is to double-tap, so I tend to rely on the app switching UI.
Feels like iOS should know enough to know which are my top used apps and to keep those 'in front' of the lesser used ones, in which case I may not feel so inclined to force quit everything to keep it 'clean'.
Or, split the app switching UI from the "this is where I go to kill apps in a fun and satisfying way" UI. :)
What about apps that have permission "Access location always" instead of "access location only when active". I would like to think that force quitting them will stop it pinging.
I also have apps that download large files in the the background (e.g. podcast) and sometimes I want to prevent that.
Does anyone know how Android fares on this topic?
I find that my Android smartphone gets regular Google crap popups - which are very annoying.
And I cannot determine the best way to disable this crap!
Self-importance and self-indulgence is the root of ALL evil.
I don't know about how it works in iOS but Android has hundreds of useless task killer apps.
Apps are designed to listen to events and are restarted automatically when needed, and when the OS can kill tasks when it runs out of RAM anyways.
The only effective task killers are those that really freeze apps (ex : greenify), at the expense of disabling every background features like notifications.
Killing apps may still be effective for buggy apps stuck in a busy loop.