Pregunta

En mi aplicación que estoy utilizando CLLocationManager y AdWhirl. No he hecho ningún desarrollo específico en relación con el modo de fondo:. No quiero que mi aplicación que se trabaja cuando está en el fondo, es decir, cuando la prensa el "botón de inicio" del usuario, la ubicación GPS debe ser actualizado sin

Ayer por la tarde he pulsado "botón de inicio", y esta mañana el iPhone estaba fuera de la batería. Es un iPhone 4 con iOS 4.1, no jailbreaked, y no hay ninguna aplicación fondo funcionamiento.

La batería fue alrededor del 35% ayer por la tarde, y el 0% de esta mañana (iPhone fue apagado).

he puesto en mi punto de interrupción delegado, que se llama cada localización GPS en tiempo se actualiza. Cuando la aplicación está en modo de fondo, delegado no se conoce. Así que estoy pensando GPS que realmente está deshabilitado en modo de fondo:. OK

Esta mañana, estoy siguiendo descarga de la batería: se trata de 1% de caída cada 15 min. Creo que es un poco demasiado.

¿Debo hacer algo específico cuando la aplicación pasa a segundo plano? Cree usted que esta caída del 1% es normal?

¿Fue útil?

Solución

Sí, acceso a internet y GPS son dos grandes desagües de la batería. No sé en absoluto lo que quiere decir con normal, ya que no hay otras aplicaciones se están ejecutando que haya concluido que esto es en realidad lo que sucede :) Suponiendo que haya probado con no hay aplicaciones en ejecución y no llegó al 1% por cada 15 minutos ...

Para AdWhirl, no se sabe si ya se para acceder a Internet cuando la aplicación pasa a un segundo plano, pero se puede añadir a su aplicación Delegado:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    /*
     Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
     If your application supports background execution, called instead of applicationWillTerminate: when the user quits.
     */
    [lm stopUpdatingLocation];
    [adView ignoreAutoRefreshTimer]
}


- (void)applicationWillEnterForeground:(UIApplication *)application {
    /*
     Called as part of  transition from the background to the active state: here you can undo many of the changes made on entering the background.
     */
    [adView doNotIgnoreAutoRefreshTimer]
    [lm startUpdatingLocation];
}

(lm y adView son el objeto Administrador de ubicaciones y el adWhirlView, ambas declaradas en la App Delegado. He encontrado que es más útil para hacer todo el manejo de la ubicación a través de métodos que hago en la App Delegado.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top