2011-09-13 10 views
6

Estoy trabajando en una aplicación web que permite a los usuarios iniciar sesión en la aplicación, solo si se encuentran en ciertas regiones especificadas. Llamé locationManager startUpdatingLocation al comienzo de mi aplicación para obtener la ubicación del usuario y habilita/deshabilita el registro en.CLLocationManager startUpdatingLocation vs startMonitoringSignificantLocationChanges

Una vez que el usuario inicia sesión, llamé

[locationManager stopUpdatingLocation]; 
[locationManager startMonitoringSignificantLocationChanges]; 

y registra al usuario cuando la ubicación actualizada está fuera de la región. ¿El uso de los dos métodos chocaría de alguna manera? (Estoy probando el código en el simulador, por lo tanto, la ubicación siempre es la misma).

Nota: No estoy usando didEnterRegion o didExitRegion porque todo es manejado por un código Javascript existente. Solo estoy enviando la ubicación actual del usuario.

+0

No chocan. Lo probé Puede ejecutar ambos de forma segura. –

Respuesta

2

Realmente depende de lo que necesite con la ubicación después de que el usuario inicie sesión. Cuando monitorea cambios significativos, su locationManager solo recibirá notificaciones sobre cambios importantes. (por ejemplo, nueva torre celular, cambio en wifi, ubicación de otras aplicaciones, etc.). No será consistente. Si todo lo que le importa es que el usuario inicie sesión, posiblemente eliminaría el monitoreo significativo todos juntos. Si aún necesita una ubicación, prepárese para obtener actualizaciones esporádicas de la ubicación.

+0

Empecé con 'startUpdatingLocation' porque cuando traté de usar' startMonitoringSignificantLocationChanges' al inicio de la aplicación, no estaba enviando la ubicación actual a mi aplicación. Después de que el usuario inicia sesión, realmente no uso la ubicación a menos que el usuario salga del área donde se le permitió iniciar sesión, por lo tanto, pensé que el monitoreo significante funcionaría. Todavía no he probado en un dispositivo real (y me muevo lo suficiente para tener un control significativo que me notifique algo) porque todavía estoy esperando que Apple me apruebe como desarrollador de iOS de pago. – dee

+0

Generalmente, si está activo en su aplicación, controlaría activamente la ubicación. Monitorear una ubicación significativa es cuando las actualizaciones de ubicación no son necesarias con tanta frecuencia. Como en el fondo. Esto ayuda con la vida de la batería. –

+0

Si solo necesita monitorear un área específica, sugeriría los métodos de monitoreo de la región. Actualmente los estoy usando y funcionan bastante bien. Mire en -startMonitoringForRegion, debería encontrar lo que necesita. –

Cuestiones relacionadas