2010-06-24 2 views
6

Non capisco perfettamente il modello iOS 4 di Apple, ho esaminato la documentazione per ore, ma apprezzo ancora un po 'di aiuto.Le applicazioni in background * ever * si chiudono in iOS 4?

Le app per iPhone in background si chiudono mai? Ad esempio, quando chiudo un'app per il rilevamento della posizione come Loopt, verrà eseguito lo sfondo ma si abbonerà al servizio di sedi significative del sistema operativo? Secondo Apple (se ho capito bene), anche se è sospeso o chiuso, verrà notificato della mia posizione attuale. Ciò significa, in effetti, che sarà sempre a conoscenza della mia posizione, purché sia ​​sul mio telefono? O fino a quando non riavvio il mio telefono?

Grazie,

  • derubare
+0

non è ancora presente NDA? – KevinDTimm

+0

@KevinDTimm - Non ci credo, ora che viene rilasciato iOS 4. –

risposta

14

Le domande devono essere specificamente scritta per sfruttare le caratteristiche di multitasking. Non lo fanno solo gratis.

Quando l'utente "chiude" un'applicazione premendo la schermata iniziale, se è consapevole della commutazione rapida, verrà sospesa. Lo stato viene salvato e viene inviato in background ma non è eseguito.

Se un'app viene scritta in modo da sfruttare l'elaborazione in background per la posizione, VoIP o audio, solo alcuni aspetti continueranno a essere eseguiti nel backround. Es. se un'app VoIP viene sospesa, dirà al sistema operativo che desidera mantenere attive le sue prese di rete e ricevere una notifica se arriva una chiamata in arrivo su tali socket. In questo caso, l'app viene "riattivata" e riprende il controllo dei socket dal sistema operativo e riprende a riprodurre normalmente.

Nel caso in cui una chiamata sia già in corso e l'utente chiuda l'app, di nuovo l'app dice al sistema operativo di mantenere i socket vivi e di continuare a elaborare l'audio ma il resto dell'app (l'interfaccia utente, qualsiasi altra funzionalità) sono sospesi e non funzionano.

Le app su iOS4 si chiuderanno se non sono compilate sull'SDK 4.0 (quindi non sono a conoscenza del multitasking) o se la chiave UIApplicationExitsOnSuspend è specificata e impostata su true nel file info.plist dell'app.

Le app vengono uccise su richiesta dal sistema operativo se il sistema inizia a esaurire le risorse.

Infine, un utente può uccidere un'app toccando due volte il pulsante Home, tenendo premuta una delle icone delle app sospese e quindi premendo il pulsante "Chiudi" che appare sul loro angolo.