iphone ios4 uiapplicationdelegate

iphone - uiapplication swift



ApplicationWillTerminate en iOS 4.0 (4)

El método de delegado applicationWillTerminate no se llama en iOS 4.0 Cuando presiono el botón de Inicio, veo que se llaman los métodos de delegado applicationWillResignActive y applicationDidEnterBackground.

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

Y cuando hago doble clic en el botón Inicio y vuelvo a abrir la aplicación, encuentro que los métodos delegados applicationWillEnterForeground y applicationDidBecomeActive se están llamando.

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

Pero quiero saber cuándo se llamará al método delegado applicationWillTerminate, donde realizo algunas rutinas de copia de seguridad de DB / archivo.

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

Incluso intenté pulsar el signo menos y eliminé la aplicación que se ejecutaba en segundo plano, pero aún así no llamó a ningún método delegado.

Algunas ideas ???


De la guía de programación de aplicaciones de iPhone:

Incluso si desarrolla su aplicación usando iPhone SDK 4 y posterior, debe estar preparado para que su aplicación finalice. Si la memoria se vuelve limitada, el sistema podría eliminar aplicaciones de la memoria para hacer más espacio. Si su aplicación está actualmente suspendida, el sistema elimina su aplicación de la memoria sin previo aviso. Sin embargo, si su aplicación se está ejecutando actualmente en segundo plano, el sistema llama al método applicationWillTerminate: del delegado de la aplicación. Su aplicación no puede solicitar tiempo de ejecución de fondo adicional de este método.

Así que sí, applicationWillTerminate: generalmente no se llamará con mucha frecuencia en iOS 4. Si tiene que guardar datos, debe hacerlo en ambas applicationWillTerminate: y applicationDidEnterBackground:


En realidad, también puedes usar este paso para hacerlo.

  1. Abra su archivo info.plist
  2. Agregar la clave -> La aplicación no se ejecuta en segundo plano
  3. Establezca este valor clave en SÍ


Obtuve una solución para terminar aplicaciones cuando el usuario pulsa el botón Inicio en iOS4. Esto llamará al método de delegado applicationWillTerminate en lugar de ingresar en el proceso en segundo plano.

  1. Abra su archivo info.plist
  2. Agregue la clave UIApplicationExitsOnSuspend
  3. Establezca la nueva clave en SÍ