2016-09-05 3 views
1

Ich versuche, den Anwendungszustand zu speichern und wiederherzustellen. Ich nehme an, dass die Methode in der App-Delegierten shouldSaveApplicationState: speichert den Zustand und bietet Ihnen Set-Wiederherstellungs-IDs für View-Controller, application:shouldRestoreApplicationState: sollten Sie zurück zu der Ansicht Controller Sie waren in, wenn die App wieder aktiv ist.IOS: Wie zum Wiederherstellen des Anwendungsstatus

Wenn ich jedoch willentlich die App mit der Home-Taste schließen - zum Beispiel, um einen Anruf zu tätigen oder etwas auf Safari zu überprüfen - wenn ich zurück zur App gehe, zeigt es für einen Sekundenbruchteil, wo ich hatte wurde aber dann von der ersten Ansicht aus neu gestartet.

Dies ist erschütternd für den Benutzer und definitiv sub-optimal, da der Benutzer zu all den Schwierigkeiten gehen muss, zurück zu gehen, wo er/sie war.

Wenn ich application:shouldRestoreApplicationState: abmelden, wenn es ausgelöst wird, scheint es, dass es in diesem Fall nicht ausgelöst wird - offenbar durch Entwurf, wie dieses question angibt.

Gibt es eine Möglichkeit zu erzwingen, dass diese Methode aufgerufen wird, um meinen Status abzurufen? Oder wie können Sie in dem Fall, in dem Sie die App aktiv verlassen, zurück zu Ihrer Position in der App gehen, statt sie beispielsweise durch einen eingehenden Anruf unterbrechen zu lassen?

Vielen Dank für Anregungen.

Antwort

1

Dies stellte sich als ein Fehler meinerseits heraus. Der Grund dafür, dass die Methode application:shouldRestoreApplicationState: nach dem Drücken der Home-Taste nicht ausgelöst wurde, besteht darin, dass eine Methode in der appDelegate-Datei mit der Bezeichnung applicationDidBecomeActive:(UIApplication *)application früher im Lebenszyklus ausgelöst wird und die App auf die Startseite umgeleitet wurde. Ich habe das behoben, indem ich die problematische Umleitung in applicationDidBecomeActive zu applicationDidFInishLaunching verschoben habe, die nach der Wiederherstellungsmethode im Lebenszyklus kommt. Dies ermöglichte die zu feuern.

Beachten Sie, das Drücken der Home-Taste ist keine Kraft beendet, die einzige Ausnahme für die Wiederherstellung Methode feuern.

Verwandte Themen