2013-02-19 11 views
27

Sto provando a verificare che la mia app (App1) si comporti correttamente quando viene chiusa dal sistema dopo il lancio di un'altra app (App2). C'è un modo per simulare o forzare questo comportamento?Come posso simulare l'app che viene uccisa in background?

Dire al simulatore di simulare un avviso di memoria mentre App2 è in esecuzione non fa nulla finché App1 non viene riportato in primo piano. Uccidere App1 dal debugger avrebbe simulato la stessa sequenza di eventi app?

MODIFICA: la mia app viene posizionata in background quando avvia una seconda app per gestire un file. Questa seconda app riavvia la mia app e sto provando a verificare che la mia app si comporti correttamente quando il sistema lo ha spento mentre la seconda è in esecuzione.

risposta

9

Sì, se l'app è già in background. Un'app uccisa dal sistema mentre è in background viene terminata senza alcun avviso-- non vengono chiamati metodi di delega dell'app, non vengono apportate modifiche allo stato-- che è esattamente ciò che accade quando si interrompe un debugger mentre l'app è in background. (Ciò presuppone che tu abbia già messo l'app in background facendo clic sul pulsante home sul simulatore o Cmd-Shift-H)

(come note di @Inafziger, puoi anche ottenere lo stesso effetto usando il simulatore interfaccia per forzare l'uscita dell'applicazione in esecuzione)

+0

Solo una domanda veloce, vuoi dire debugger "Pausa" in contrapposizione a "Stop"? Non sono riuscito a trovare un modo per "arrestare" il debugger. Mi piacerebbe davvero sapere perché sono un'app di background location e voglio vederlo rilanciato dopo l'uccisione del sistema. –

+0

@JitendraKulkarni: intendo Stop. È il grande pulsante in alto a sinistra nella barra degli strumenti Xcode, accanto al pulsante Esegui (sembra un pulsante "Riproduci"). Termina semplicemente il processo, indipendentemente dallo stato in cui si trova. Che è tradizionalmente ciò che accade a un'app iOS in background quando viene ucciso dal sistema. –

+0

Trovato, grazie! –

6

si dovrebbe essere in grado di:.

  • Toccare il pulsante Home, che vi porterà alla schermata iniziale
  • Toccare due volte il tasto home (utilizzare la scorciatoia da tastiera nel simulatore)
  • Touch e tenere premuta l'icona in basso fino a quando non inizia a muovere
  • Toccare il cerchio cruscotto - per rimuoverlo dalla memoria

Questo vi dà i metodi app delegato di andare in secondo piano, ecc Ecco come funziona in iOS 6 e versioni successive.

+1

Correzione minore: l'icona ha un trattino, non una X. La X viene visualizzata quando si elimina un'app. – rmaddy

+0

Vero ... Grazie! – lnafziger

19

Come le altre risposte, è possibile terminare immediatamente l'applicazione chiudendola forzatamente o interrompendo il debugger. La tua app non riceverà alcun avviso in questi casi.

Se stai cercando di testare i tuoi metodi applicationWillTerminate, imposta UIApplicationExitsOnSuspend su YES nel tuo .plist e poi cambia app o premi il tasto home. Assicurati di aver impostato la chiave su un booleano, non sulla stringa "SÌ".

+0

Questa è una * risposta * molto * utile. Grazie! –

Problemi correlati