Las solicitudes tienen que ser escritos específicamente para aprovechar las características multitarea. No solo lo obtienen de forma gratuita.
Cuando el usuario "cierra" una aplicación presionando la pantalla de inicio, si se activa el cambio rápido, se suspenderá. Su estado se guarda y se envía al fondo pero no ejecuta.
Si se escribe una aplicación para que aproveche el procesamiento en segundo plano de la ubicación, la VoIP o el audio, solo se seguirán ejecutando ciertos aspectos en el entorno. Eg. si se suspende una aplicación de VoIP, le indicará al sistema operativo que desea mantener sus conectores de red con vida y que se le notifique si llega una llamada entrante en esos sockets. Cuando esto sucede, la aplicación se "despierta" y recupera el control de los sockets del sistema operativo y reanuda la reproducción normalmente.
En el caso de que una llamada ya esté en curso, y el usuario cierra la aplicación, la aplicación le dice al SO que mantenga los enchufes activos y que continúe procesando audio pero el resto de la aplicación (la IU, cualquier otra características) se suspenden y no se ejecutan.
Las aplicaciones en iOS4 se cerrarán si no están compiladas en el SDK 4.0 (por lo tanto, no son multitareas) o si la clave UIApplicationExitsOnSuspend
está especificada y establecida en verdadero en el archivo info.plist de la aplicación.
El sistema operativo mata a petición las aplicaciones si el sistema comienza a quedarse sin recursos.
Finalmente, un usuario puede matar una aplicación tocando dos veces el botón de inicio, presionando y sosteniendo uno de los íconos de la aplicación suspendida y luego presionando el botón "cerrar" que aparece en su esquina.
¿No es esto todavía NDA? – KevinDTimm
@KevinDTimm - No lo creo, ahora que iOS 4 se lanzó. –