What's the difference between Background App Refresh in iOS 7 and multitasking in iOS 6? Didn't iOS 6 support multitasking and allow background apps to refresh their content? So what's new in iOS 7? Just that we can enable/disable specific apps from accessing the network when running in the background?

Also, I see that the Pandora app is not present in this list (Settings → General → Background App Refresh) and yet it works fine when in the background and fetches data when on 3G. How does this work?
iOS 4 and greater supported multitasking for some specific use cases:


A program needing a limited amount of time to finish a task (such as uploading a file) and can be suspended after that. It would not be woken up until the user went back to the app.
Playing audible content to the user while in the background, such as Pandora.
Recording audio while in the background
Keeping the user informed of their location, such as a navigation app
VoIP apps like Skype
Newstand apps which update content occasionally
Communicating with plugged in accessories (added in iOS 5)
Apps which communicate with Bluetooth devices (added in iOS 6)


iOS 7 adds two additional use cases for multitasking.


A program can register that it wants to download small sets of information regularly. For example, it could download twitter updates regularly. This new API allows you to specify that you'd like to be woken up to download information every so often.  For instance, a program could say it wants to download information after it's been asleep at least fifteen minutes.  The system will then try to find a time where it can wake up as many apps at once to do their work.  Minimizing the number of times the device wakes up will help it save battery.
A program can register to be woken to download content if it receives a remote notification.  The idea is that it can download the content and be ready to display it if you go into the app.