3 ms·
Can someone briefly explain how the "multitasking" works, then? I was under the impression that this will be possible, too. I suppose apps that are sent into
by buster 16y ago
Can someone briefly explain how the "multitasking" works, then?
I was under the impression that this will be possible, too.
I suppose apps that are sent into the background are just frozen in their current state and continue to run where they left of, when going into foreground? Just a guess, though..
- barredo 16y agoThere's real multitasking for Native apps (since 1.0) and a limited multitasking for 3rd party apps (since 4.0) Edit: Downvoted? Am I wrong? Just curious
- buster 16y agodon't know.. upvoted again ;) I had the hope of little more technical detail, though
- illumin8 16y agoThere is real multitasking for Native apps like iPod, Mail, Phone, SMS, Safari, Clock, etc. Apple has chosen to not allow other apps to run in the background on a permanent basis due to memory concerns. Indeed, the iPhone and especially the iPad runs out of memory shockingly easy. I have noticed that iOS 3.2 on my iPad is actually intelligent enough to start unloading backgrounded native apps from memory when I get low on RAM. I'm running SBSettings and Backgrounder on a jailbroken iPad and I can see that when I get down to about 10-20MB free apps will start getting closed. As long as these idevices only have 256MB of RAM this will be a problem. I think the approach Apple is taking is the right approach. An app like Pandora should be able to spin off a "stub" process that doesn't have any of the UI overhead but simply the network and audio code to continue playing an existing stream. These are all "hacks" that will hopefully be outdated in a couple years when we're hacking away on our A9 cortex 2 ghz. dual core iPads with 4GB of RAM.... (hey, I can dream right?)
- joshwa 16y ago:s/Native/Apple's built-in/
- glhaynes 16y agoThe items (audio, GPS, etc) on this page more-or-less each correspond to distinct "3rd party app multitasking APIs" in iOS 4: http://www.apple.com/iphone/features/multitasking.html http://www.apple.com/iphone/features/multitasking.html Developer documentation is, of course, better. But I think it's all under NDA.
- buster 16y agoI see, so noone can explain the details.. I thought they opened up the nda policy a bit.
- deleted 16y ago[deleted]
- tuacker 16y agoStarting with iOS4 developers have access to a set of APIs. Audio, GPS + 'Location', Push, Phone (think Skype), Worker and probably a few other APIs. Until now, when the user pressed the home button you were able to write your state to flash if necessary. Now there is another way to 'freeze' your app and keep the state in memory -- at least until iOS4 decides your app won't be needed soon and fully quits it to free memory. If you use the APIs mentioned above it is possible to continue playing (streaming) music, doing something else during a Skype call or update your location whenever you connect to a new cell tower* . If you need turn-by-turn you get access to constantly ask for GPS, this aside from calling/playing music is the only 'real' multitasking as it continues in the background until you tell it to quit. The Worker API allows you to complete a task, for example continue uploading that video file to Dropbox. Once it's done the Dropbox app quits (or is frozen in memory as everything else). Push notifications allow to access a server but it seems as someone else here mentioned the payload is too low, and only accessible as soon as the app is activated. I can't tell for sure though as I'm not an iPhone developer just following it closely and most of this information comes from the January(?) keynote when iOS4 was introduced. *Because GPS sucks battery you app gets called whenever you connect to a new cell tower, this according to Apple, should be sufficient for services like Google Latitude where the exact position at any given point isn't that important like it is for turn by turn navigation.
- buster 16y agoAhh, great thanks, this is a really good summary! :) So, what is missing (i guess) is some background service API. Sounds pretty much like the Android way (minus the background service). But it should be good enough for the majority of apps, i think.
- illumin8 16y agoI think Apple could solve all of this by adding something as simple as a crond that executes processes at scheduled times, similar to what Marco is requesting. I'm sure Apple would do it properly and have all apps with scheduled tasks accessible from the Preferences screen so you could disable or change the schedule of them easily.