Mi pregunta es: ¿CLLocationManager continúa ejecutándose mientras mi aplicación está inactiva?CLLocationManager mientras la aplicación está en estado de fondo
Respuesta
Sí, podría. Tiene dos opciones para gestionar los eventos del servicio de ubicación cuando se suspende su aplicación, que se puede leer en el artículo: Getting the User’s Current Location. Como se ha señalado:
Hay dos servicios diferentes que puede utilizar para obtener la ubicación actual del usuario:
- El servicio de localización estándar es una solución configurable, de propósito general y es compatible con todas las versiones de iOS.
- El servicio de cambio significativo de ubicación ofrece un servicio de ubicación de baja potencia para dispositivos con radios celulares. Este servicio solo está disponible en iOS 4.0 y posterior y también puede activar una aplicación que está suspendida o no en ejecución.
Además, como se señaló en la parte inferior de este artículo en la sección "Obtención Ubicación Eventos en el fondo":
- Si la aplicación necesita actualizaciones de ubicación entregado si la aplicación está en el primer plano o fondo, hay múltiples opciones para hacerlo. La opción preferida es utilizar el servicio de cambio de ubicación significativo para activar su aplicación en los momentos adecuados para manejar nuevos eventos. Sin embargo, si su aplicación necesita usar el servicio de ubicación estándar, puede declarar que su aplicación necesita servicios de ubicación en segundo plano.
- Una aplicación debe solicitar servicios de ubicación en segundo plano solo si la ausencia de esos servicios perjudicaría su capacidad para operar. Además, cualquier aplicación que solicite servicios de localización en segundo plano debe usar esos servicios para proporcionar un beneficio tangible al usuario. Por ejemplo, una aplicación de navegación paso a paso sería un candidato probable para los servicios de localización en segundo plano debido a su necesidad de rastrear la posición del usuario e informar cuándo es el momento de hacer el siguiente giro.
Sí, si CLLocationManager
es el primer llamado startUpdatingLocation
método, y en el archivo AppName-Info.plist
se añade Required Background Modes -> App registers for location updates
Para desactivar CLLocationManager mientras la aplicación está en modo apaisada simplemente no se debe agregar los "registros de la aplicación para actualizaciones de ubicación " en el " Modos de fondo necesarios " clave del archivo info.plist.
Sugiero utilizar el servicio de ubicación de cambio significativo en lugar del servicio de ubicación estándar siempre que sea posible, para preservar la batería del dispositivo.
Hay algunas sutilezas importantes con este (a partir de iOS 7.1):
- El Lugar modo de actualización de fondo no debe utilizarse si usted está buscando para el cambio y la región significativa introducir eventos/salida. Seguirá recibiendo estos eventos incluso si la bandera de fondo NO está configurada, y ahorrará mucha batería al mismo tiempo.
- Si hace lo anterior, debe tener en cuenta el tiempo de fondo permitido limitado. Si no te ocupas de cerrar las solicitudes de red, etc.en el tiempo permitido, se producirán fallas de transacciones de red.
- SÓLO debe utilizar el modo de fondo de ubicación si necesita usar el seguimiento de ubicación detallado (por ejemplo, -startUpdatingLocation), en cuyo caso este modo de fondo mantendrá su aplicación activada.
- Usar el modo de fondo de ubicación cuando no se obtiene una ubicación detallada molestará a los usuarios y puede hacer que se rechace tu aplicación durante el proceso de revisión (dependiendo de cómo uses la ubicación en toda la aplicación).
- Su aplicación puede ser eliminada en cualquier momento por el sistema operativo si no tiene configurado el modo de ubicación en segundo plano, por lo que deberá asegurarse de reinicializar adecuadamente su instancia de CLLocationManager en applicationDidFinishLaunching o applicationWillFinishLaunching para obtener la actualización subsiguiente. o didEnter/ExitRegion delegar llamada. ¡Solo porque la ubicación despierta su aplicación con una actualización de ubicación, NO recrea mágicamente su CLLocationManager sin que usted lo programe!
Espero que ayude!
# 5 es muy importante: proporcione al sistema una forma de volver a crear cualquier objeto implementado 'CLLocationManagerDelegate' o no obtendrá las devoluciones de llamadas, incluso si el sistema vuelve a ejecutar la aplicación – bcattle
- 1. Como llegar CLLocationManager en mi aplicación
- 2. Notificación en Phonegap mientras la aplicación no se está ejecutando
- 3. WP7: Editar captura de pantalla mientras la aplicación está en segundo plano (Mango)
- 4. ¿La mejor manera de congelar y la aplicación mientras la base de datos está haciendo un trabajo de fondo pesado?
- 5. Solicitando la ubicación del iPhone mientras está en segundo plano?
- 6. ¿Se puede actualizar un archivo de la aplicación iOS mientras la aplicación todavía está en revisión?
- 7. ¿Qué método de delegado se llama cuando se utilizan notificaciones automáticas si la aplicación está en estado de fondo?
- 8. ¿Detecta que una aplicación se lanzó al estado de fondo?
- 9. ¿Cómo cambiar la configuración de la aplicación (Configuración) mientras la aplicación está abierta?
- 10. ¿dónde está el estado de la sesión, el estado de la aplicación en el ciclo de vida de la página?
- 11. dónde poner en práctica CLLocationManager
- 12. CLLocationManager startUpdatingLocation vs startMonitoringSignificantLocationChanges
- 13. iPhone: cómo configurar la insignia de la aplicación, cuando la aplicación está cerrada/en segundo plano?
- 14. Notificación de inserción mientras la aplicación no se está ejecutando - launchOptions dictionary está vacío
- 15. ¿Se detectará el toque mientras una Vista está en estado invisible?
- 16. Guardando estado de la aplicación en Node.js
- 17. Actualizar la IU mientras se trabaja en el fondo
- 18. Capacidad de respuesta de CLLocationManager
- 19. ¿CLLocationManager funciona sin internet?
- 20. ¿Cómo puedo saber que mi aplicación está a punto de quedar inactiva/pasar al estado de fondo?
- 21. Aplicación iOS ejecutando tareas en el fondo
- 22. Forzar actualizaciones de CLLocationManager: ¿ayuda o perjudica?
- 23. Sustitución para la propiedad "propósito" de CLLocationManager
- 24. Evite que Android cierre la pantalla mientras la aplicación (con Phonegap) está en
- 25. NSTimer devoluciones de llamada mientras la aplicación de iPhone está inactiva
- 26. Manejo de la notificación de inserción mientras la aplicación está abierta
- 27. ¿Cómo puedo establecer el foco en la aplicación que ya está en estado de ejecución?
- 28. Recepción de notificaciones de GCM de Android cuando la aplicación está en estado detenido
- 29. cómo ocultar la barra de estado en la aplicación Iphone
- 30. Dónde poner el estado de la aplicación?
De forma predeterminada, CLLocationManager se ejecuta mientras la aplicación está inactiva? ¿Es verdad? – Bojan
No, la aplicación debe estar registrada para el modo en segundo plano para actualizaciones de ubicación, el CLLocationManager debe iniciarse para actualizaciones de ubicación o actualizaciones de ubicación significativas y cuando ingresa en segundo plano CLLocationManager continúa actualizando la ubicación ... – graver
¿Cómo puedo deshabilitar CLLocationManager mientras la aplicación está en modo de fondo? – Bojan