Frage

Wie programmatisch eine iPhone App in iOS neu starten?

Ich finde diese Art und Weise http://writeitstudios.com/david/?p=54

Aber kann etwas einfach sein.

War es hilfreich?

Lösung

Der einzige Weg, ich weiß, dies zu tun, ist nicht ideal, aber es funktioniert.

Zuerst Ihre App haben Opt-out von Hintergrundausführung (Multitasking) Die App muss beendet werden, wenn verlassen, nicht als Hintergrund-Task ausgeführt werden. Dies wird mit dem plist Schlüssel UIApplicationExitsOnSuspend getan.

Zweitens App benötigt eine individuelle URL-Schema zu registrieren, die verwendet werden können, um die Anwendung zu starten.

Drittens müssen Sie eine Webseite gehostet irgendwo, dass, wenn der App benutzerdefinierte URL-Schema wird umleiten geladen.

Forth, muss der Benutzer eine aktive Internetverbindung.

Zum Beenden und Neustarten, rufen UIApplication openURL auf Ihrer gehosteten Umleiten Webseite. Ihre App wird verlassen und Safari wird gestartet und Ihre Seite laden. Die Seite wird umleiten Safari zu Ihrem benutzerdefinierten URL-Schema, woraufhin Safari intern openURL zu rufen, was iOS App zu starten.

Andere Tipps

meine Post, dass Sie in Verbindung mit einer Cocoa-Anwendung sich bezieht, nicht auf die iOS. Auf dem iOS, können Sie eine Anwendung (aber Apple nicht wie diese) unter Verwendung exit(0); beenden, aber ich, dass es nicht empfehlen. Sie können nicht neu starten, iPhone apps though.

Wenn Sie nicht für jailbroken Geräte sind zu entwickeln, wird Apple nicht erlauben Ihnen sogar programmatisch Ihre Anwendung zu beenden. So Neustart des Gerätes ist außer Frage.

Ihre AppDelegate Instanz hat eine Methode

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

Hier können Sie Logik setzen, um herauszufinden, ob die App neu starten sollte, oder auch weiterhin tun, was auch immer es tat. Zum Beispiel können Sie eine BOOL Variable appMustRestart haben, die false zunächst aber wird als wahr ausgelöst, wenn etwas in Ihrer App passiert, dass Sie das nächste Mal mögen ein frischer Relaunch sein.

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

    // INSERT CODE HERE TO TRANSFER FOCUS TO INITIAL VIEWCONTROLLER
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top