2012-12-21 13 views
10

Ho un'app per iPhone che devo inviare automaticamente allo sfondo. L'app è definita con il tasto VOIP nelle sue modalità in background, quindi dovrebbe continuare a funzionare quando è in background. In particolare, ho bisogno che l'app continui a funzionare, quindi chiamare exit (0) non va bene.C'è un modo per inviare in modo programmatico l'app per iPhone allo sfondo

L'app non verrà distribuita tramite app store, quindi l'utilizzo di un'API privata è ok.

Ho letto di UIApplication sospendere e UIApplication terminateWithSuccess, ma non sembrano essere più disponibile

+1

lavoro Perché desidero inviare a app per sfondo!?!?!? Gli utenti avviano l'app dopo la quale l'utente invierà l'app allo sfondo. Non è necessario inviare l'app sullo sfondo. Anche l'aggiunta della chiave 'VOIP' alle modalità in background manterrà l'app in esecuzione in background e si avvierà se il dispositivo gesterà il reset. – rckoenes

+0

È un requisito di comportamento desiderato da inviare allo sfondo automaticamente (possiamo farlo su Android), Inoltre so tutto su come funziona VOIP non è questo il problema – gheese

+0

Non è possibile, i requisiti non sono compatibili con il sistema iOS. Solo gli utenti possono fare lo sfondo o chiudere l'app premendo il pulsante Home. – rckoenes

risposta

10

già risposto abbastanza bene qui:

Suspend the application

Come quel manifesto ha scritto:

Chiudere la tua applicazione o inviarla allo sfondo a livello di codice è una violazione delle [Linee guida per l'interfaccia umana iOS] [1], che di solito non promette nulla di buono per passare attraverso t egli processo di revisione:

non smettere di programmazione

Mai chiudere un'applicazione iOS di programmazione perché le persone tendono a interpretare questo come un incidente. Tuttavia, se circostanze esterne impediscono che l'applicazione funzioni come , è necessario comunicare agli utenti la situazione e spiegare cosa possono fare . A seconda di come è grave il malfunzionamento dell'applicazione , hai due possibilità.

Visualizzare una schermata attraente che descrive il problema e suggerisce una correzione . Una schermata fornisce il feedback che rassicura gli utenti che non c'è niente di sbagliato con l'applicazione . E 'agli utenti il ​​controllo, permettendo loro di decidere se vogliono di adottare misure correttive e continuare utilizzando la propria applicazione o premere il tasto Home e aprire una diversa applicazione

Se solo alcune delle caratteristiche della vostra applicazione non sono funzionante, visualizzare uno schermo o un avviso quando le persone attivano la funzione. Visualizza l'avviso solo quando le persone cercano di accedere a la funzione che non è funzionante.

+0

Quello che ha detto. :) –

+0

Grazie - Avevo già studiato il percorso di sospensione e ho trovato che non era adatto poiché faceva appunto che ho messo l'app in sospeso, ho bisogno di qualche elaborazione in background per continuare. In ogni caso conferma solo che non è possibile – gheese

3

Mentre sono d'accordo con l'altra risposta che "non dovresti" uscire programmaticamente. C'è un modo per uscire programmaticamente.

* disclaimer - Non dovresti farlo.

exit(0); 

Non c'è modo di mettere l'applicazione in background senza premere il tasto Home. Se c'è, potresti voler aggiungere il flag di jailbreak alla tua domanda e chiederglielo.

Per ulteriori informazioni, consultare questa domanda duplicata, Proper way to exit application.

+0

Grazie per la conferma, avevo il sospetto che non fosse possibile fare lo sfondo di un'app nel codice – gheese

2

In Swift 3 Utilizzare sottostante Codice, fascino

DispatchQueue.main.asyncAfter(deadline: .now()) { 
      UIApplication.shared.perform(#selector(NSXPCConnection.suspend)) 
     } 
+2

Questo avrebbe superato la procedura di revisione dell'app? – Isuru

Problemi correlati