iphone ios4 cllocationmanager dealloc

iphone - El indicador de servicio de ubicación permanece "encendido"



ios4 cllocationmanager (4)

si comenzó su trabajo de administrador de ubicación con

[MyLocationManagerInstance startMonitoringForSignificantLocationChanges];

entonces necesitas detenerlo con:

[MyLocationManagerInstance stopMonitoringForSignificantLocationChanges];

Si fuerza la terminación de la aplicación, applicationWillTerminate no se llama, ya que, para el punto de vista del sistema operativo, aparece como SIGKILL.

He creado una pequeña aplicación que utiliza servicios de ubicación en el iPhone. Todo funciona bien, excepto el hecho de que, a veces, la pequeña flecha en la barra de información permanece activa incluso si elimino la aplicación de manera explícita. Utilizo el modo de fondo para los servicios de ubicación, por lo que los métodos appDelegate applicationWillResignActive , applicationDidEnterBackground , applicationWillEnterForeground y applicationDidBecomeActive se implementan pero no toco los servicios de ubicación (bueno, los necesito en modo de fondo).

En esa applicationWillTerminate configuración nunca se llamará aWTerTerminate; Implementé toda la limpieza de limpieza como stopUpdatingLocation en dealloc , ya que no encontré ningún otro lugar apropiado para esto. Pero aún así, el indicador permanece encendido.

¿Algunas ideas?


Tuve el mismo problema: aplicación que deja el indicador de ubicación en la barra de estado.

Mi problema resultó ser que originalmente había llamado al método ''startMonitoringSignificantLocationChanges'' de CCLocationManager pensando que daría información de ubicación aproximada que podría mejorar la resolución cuando realmente la necesitaba.

Desafortunadamente, una vez que una aplicación ha llamado a ese método una vez, incluso si luego lo elimina y lo vuelve a instalar, siempre volverá a mostrar el ícono en la barra de estado hasta que la aplicación llame a ''stopMonitoringSignificantLocationChanges'' en CCLocationManager para anular el registro del sistema - Completar el dolor ya que tengo que dejar ese código hasta que se haya solucionado con las diversas personas que estaban probando mi aplicación por mí.

Por lo tanto, si mantiene ese ícono atascado en su aplicación, asegúrese de haber hecho coincidir las llamadas a ''startMonitoringSignificantLocationChanges'' con una llamada de detención.


Me encontré con un problema similar. El problema solo ocurre en iPhone4, pero funciona perfectamente en mi 3GS. Después de investigar mi código, encontré que en mi método startUpdatingLocation utilicé los servicios startUpdatingLocation y startMonitoringForRegion, sin embargo, en mi método stopUpdatingLocation simplemente dejo de actualizar el servicio Location. Solucioné este problema desactivando MonitoringForRegion también.

#pragma mark - #pragma mark Location methods - (void)startUpdatingLocation { [self.locationManager startUpdatingLocation]; [self.locationManager startMonitoringForRegion:desRegion desiredAccuracy:50.0f]; } - (void)stopUpdatingLocation { [self.locationManager stopUpdatingLocation]; // !!!: fix location service indicator stuck issue [self.locationManager stopMonitoringForRegion:desRegion]; }


Ok, problema resuelto. El indicador permanecerá encendido hasta que se encuentre una nueva ubicación. Entonces, si todo lo demás es correcto, el indicador se apaga.