Pregunta

Me preguntaba si alguien me podría apuntar a (o pegue) un código para hacer frente a apagar las actualizaciones Core Location para ahorrar energía.

Por lo que yo entiendo, usted debe detener las actualizaciones Core Location tan pronto como se obtenga una lectura de la precisión deseada. Si no obtiene una lectura buena precisión después de un cierto tiempo, también debe detener las actualizaciones (presumiblemente mediante un temporizador). Cada vez que se detiene actualizaciones, se debe disparar un temporizador (unos 60 segundos) para reiniciar Core Location y obtener una nueva lectura.

¿Hay código de Apple, que hace todo esto? No parece que estas LocateMe, TaggedLocations y ubicaciones de código de ejemplo para hacerlo.

¿Fue útil?

Solución

El ejemplo LocateMe tiene el código que necesita. Sólo tiene que crear un segundo selector de fuego. LocateMe llama al siguiente en el mismo método de configuración de ...

    [self performSelector:@selector(stopUpdatingLocation:) withObject:@"Timed Out" afterDelay:[[setupInfo objectForKey:kSetupInfoKeyTimeout] doubleValue]];

Se dice que después de un cierto período de tiempo (kSetupInfoKeyTimeout), por favor llame al método stopUpdatingLocation el argumento de NSString = "Tiempo de espera agotado". Dentro del método stopUpdatingLocation, la [locationManager stopUpdatingLocation] se llama para decirle a CoreLocation parada.

Por lo tanto, todo lo que necesita hacer es agregar otro selector como este ...

[self performSelector:@selector(timeToRestartCoreLocation) afterDelay: 60];

dentro del método stopUpdatingLocation, que se llame al método timeToRestartCoreLocation después de 60 segundos. A continuación, dentro de su método timeToRestartCoreLocation, llamada [locationManager startUpdatingLocation] para dar inicio a CoreLocation de nuevo.

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