Frage

Das Verfahren applicationWillTerminate Delegat wird nicht in iOS 4.0 genannt zu werden  Wenn ich drücken Sie die Home-Taste I die applicationWillResignActive und applicationDidEnterBackground sehe Delegatmethoden genannt zu werden.

 - (void)applicationWillResignActive:(UIApplication *)application
{
  NSLog(@"Application Did Resign Active");
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
  NSLog(@"Application Did Enter Background");
}

Und wenn ich doppelt auf die Schaltfläche Start Tippen und erneut die Anwendung starten die i die applicationWillEnterForeground und applicationDidBecomeActive Delegatmethoden finden sind aufgerufen zu werden.

 - (void)applicationWillEnterForeground:(UIApplication *)application
{
  NSLog(@"Application Will Enter Foreground");
}



- (void)applicationDidBecomeActive:(UIApplication *)application
{
  NSLog(@"Application Did Become Active");
}

Aber ich möchte wissen, wenn das applicationWillTerminate Delegatmethode genannt wird, wo ich einige DB / Datei-Backup-Routinen.

- (void)applicationWillTerminate:(UIApplication *)application{

}

Ich habe sogar versuchte das Minuszeichen zu schlagen und löschte die App im Hintergrund läuft, aber noch hat es keine Delegierten Methode aufrufe.

Irgendwelche Ideen ???

War es hilfreich?

Lösung

Aus dem iPhone Application Programming Guide:

  

Auch wenn Sie Ihre Anwendung entwickeln mit iPhone SDK 4 und höher, müssen Sie nach wie vor bereit, für Ihre Anwendung beendet werden. Wenn der Speicher begrenzt wird, kann das System Anwendungen aus dem Speicher entfernen, um mehr Platz zu schaffen. Wenn Ihre Anwendung derzeit ausgesetzt ist, entfernt das System Ihre Anwendung aus dem Speicher ohne Vorankündigung. Allerdings, wenn Ihre Anwendung derzeit im Hintergrund ausgeführt wird, führt das System der applicationWillTerminate: Methode der Anwendung delegieren nennen. Ihre Anwendung kann verlangt keine zusätzliche Hintergrundausführungszeit von dieser Methode.

Also ja, applicationWillTerminate: wird in der Regel nicht sehr oft in iOS 4. aufgerufen werden, wenn Sie Daten speichern müssen, sollten Sie dies tun, sowohl in applicationWillTerminate: und applicationDidEnterBackground:.

Andere Tipps

Die WWDC 2010 Session Annahme Multitasking auf dem iPhone OS ( Teil 2 ) erläutert die Übergänge Zustandsanwendung sehr gut.

habe ich eine Lösung für Anwendungen beendet wird, wenn Benutzer die Home-Taste in iOS4 trifft. Dies wird die applicationWillTerminate Delegatmethode ruft stattdessen in Hintergrundprozess einzugeben.

  1. Öffnen Sie die Datei info.plist
  2. Fügen Sie den Schlüssel UIApplicationExitsOnSuspend
  3. Stellen Sie den neuen Schlüssel auf YES

Eigentlich kann man diesen Schritt auch verwenden, dies zu tun.

  1. Öffnen Sie die Datei info.plist
  2. Fügen Sie den Schlüssel -> funktioniert Anwendung nicht im Hintergrund laufen
  3. Stellen Sie diesen Schlüsselwert YES
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top