2010-04-18 16 views
5

He estado tratando de encontrar alguna manera de optimizar el rendimiento de mi aplicación de iPhone basada en la ubicación y he visto a algunas personas mencionar que puede forzar actualizaciones de ubicación iniciando y deteniendo su CLLocationManager. Necesito la mejor precisión que pueda obtener, y al usuario en mi caso probablemente le gustaría ver actualizaciones cada pocos segundos (digamos, 10 segundos) mientras caminan. He configurado los filtros en consecuencia, pero me he dado cuenta de que a veces no recibo ninguna actualización del dispositivo durante bastante tiempo.Forzar actualizaciones de CLLocationManager: ¿ayuda o perjudica?

Estoy probando el siguiente enfoque, que fuerza una actualización cuando pasa un intervalo de tiempo fijo (estoy usando 20 segundos). Mi instinto me dice que esto realmente no me ayudará a proporcionar actualizaciones más precisas para el usuario, y que dejar CLLocationManager funcionando todo el tiempo es probablemente el mejor enfoque.

- (void)forceLocationUpdate { 
    [[LocationManager locationManager] stopUpdates]; 
    [[LocationManager locationManager] startUpdates]; 
    [self performSelector:@selector(forceLocationUpdate) withObject:nil afterDelay:20.0]; 
} 

Mi pregunta qué es- forzar actualizaciones de CLLocationManager mejorará el rendimiento del núcleo ubicación? ¿Duele el rendimiento? Si estoy afuera en un campo abierto con buena recepción de GPS, ¿será de ayuda esto? ¿Alguien tiene experiencia tratando esto?

Gracias de antemano, Steve

+0

Al configurar su CLLocationManager, debe establecer su criterio de 'deseada precisión' en 'kCLLocationAccuracyBestForNavigation', disponible en iOS 4+. Luego, permita que el sistema operativo optimice. – Nate

Respuesta

0

También estoy tratando de optimizar una función de 'cerca de mí' en una aplicación - me encontré con lo siguiente para publicar información útil: link text

0

Es probable que si usted tiene su precisión y filtro de distancia deseados se configuraron correctamente, entonces no recibirá ninguna actualización porque su usuario o prueba no se ha movido lo suficiente como para activar una actualización. Al igual que el comentario de @Nate dijo, si lo configuras en best or bestForNav, tienes más posibilidades de obtener más actualizaciones.

La verdadera razón para cerrar su administrador de ubicación es realmente conservar la batería. La mayoría de los usuarios que usan el dispositivo para GPS y navegación saben para mantenerlo conectado. Si no está utilizando la ubicación para algo así, es mejor que obtenga su ubicación y la cierre para ahorrar batería hasta que necesite otra actualización de ubicación. . Esto se puede hacer a través de temporizadores o bloques. Lo principal es pensar cómo puede operar y ahorrar la mayor cantidad de batería posible.

Cuestiones relacionadas