How to determine what apps are running on iPhone?
Solution 1:
If an app is running, it will always be in the task switcher, but just because an app is in the switcher does not mean it is currently running. There really is no way to say if an app is running with 100% certainty other than to open it (with the exception of audio apps, which if they are playing audio, they are running). See Apple's page on multitasking.
Solution 2:
The general rule about background applications is that they get five seconds of background time. An application can, however, tell that it's performing an background process and that way extend the background time to about a maximum of ten minutes. This makes it possible for applications to start a download when it's active and continue it if put to background.
To this there are a couple of exceptions where applications wont get suspended when put into the background.
- Apps that play audio.
- Apps that tracks location.
- Apps that listen for VoIP calls.
- Newsstand apps that downloads new content.
- Apps that get continuous updates from an external accessory.
There are also all applications that you allowed to receive push notifications that use data. This together with the built in apps people already named. You can of cause choose to inactivate automatic mail fetch, turn off the iMessage functionality and disconnect from iCloud.
Macworld have a nice article that explains this and the different states of applications.
You can also dive deep into the App States and Multitasking at iOS Developer Library.