Domanda

Come riavviare programmazione un applicazione per iPhone in iOS?

Trovo questo modo http://writeitstudios.com/david/?p=54

, ma può essere qualcosa di semplice.

È stato utile?

Soluzione

L'unico modo che conosco per fare questo non è l'ideale, ma funziona.

In primo luogo, la vostra applicazione deve scegliere di esecuzione in background (multitasking) L'applicazione deve smettere quando è uscito, non eseguire come attività in background. Questo viene fatto con la chiave UIApplicationExitsOnSuspend plist.

In secondo luogo, le vostre esigenze app per registrare uno schema URL personalizzato che può essere utilizzato per lanciare l'applicazione.

In terzo luogo, è necessario una pagina web ospitata da qualche parte che una volta caricato reindirizza a schema URL personalizzato del tuo app.

Forth, l'utente ha bisogno di una connessione Internet attiva.

Per uscire e riavviare, chiamare UIApplication openURL sulla tua pagina web reindirizzamento ospitato. La vostra applicazione sarà uscire e Safari lancerà e caricare la pagina. La pagina reindirizzerà Safari al vostro schema URL personalizzato, spingendo Safari chiamare internamente openURL, causando iOS per lanciare la vostra applicazione.

Altri suggerimenti

il mio post che si è collegato a è riferimento ad un'applicazione Cocoa, non l'iOS. Su iOS, è possibile chiudere un'applicazione (ma Apple non lo fa come questo) utilizzando exit(0); ma non consigliamo. Non è possibile riavviare iPhone apps però.

A meno che non si sta sviluppando per i dispositivi jailbroken, Apple non sarà nemmeno permetterà di terminare programatically la vostra applicazione. Quindi riavviare il dispositivo è fuori questione.

Il tuo esempio AppDelegate ha un metodo

(void)applicationDidBecomeActive:(UIApplication *)application
{
}

E qui, si può mettere la logica per capire se l'applicazione deve riavviare, o continuare a fare ciò che stava facendo. Ad esempio si può avere una variabile BOOL appMustRestart che è false in un primo momento, ma viene attivato come vero ogni volta che qualcosa accade nella vostra app che vuoi la prossima volta di essere un rilancio fresca.

if (appMustRestart)
{
    [self resetVars];  // call a method that resets all your vars to initial settings

    // INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top