2012-04-13 20 views
6

Estoy desarrollando la aplicación de localización de seguimiento. Pero dejo de obtener la actualización de ubicación haciendo 2 cosas ...El icono de GPS sigue parpadeando después de que locationManager.removeUpdates() y al establecer locationManager para anular

  1. ubicaciónManager.removeUpdates (this); y
  2. estableciendo la referencia de locationManager en null.

Esto detendrá conseguir coordenadas de localización como yo quiero ...

pero el problema es el icono de GPS sigue parpadeando .. que drena la batería del dispositivo.

Así que por favor me ayude en la detención de este correcciones de GPS ...

Respuesta

1

Si está probando esto en el emulador, este es un comportamiento perfectamente normal. El ícono de GPS en la barra de estado nunca desaparece.

Si está probando esto en hardware, ha llamado al requestLocationUpdates() más de una vez (y no ha eliminado las otras actualizaciones), o tal vez alguna otra cosa en el hardware está utilizando el GPS.

+0

Thx señor, estoy probando en el dispositivo ... Pero mi código es como cuando llega el temporizador solicito al administrador de ubicación para obtener actualizaciones por locationManager.requestLocationUpdates (bestProvider, 10 * 1000, 1, oyente); public void continuación, en el oyente i hv escrito onLocationChanged (ubicación, ubicación) { \t \t \t \t \t \t FileUtils.save (ubicación, mContext); \t \t \t locationManager.removeUpdates (this); \t \t \t \t \t} Así que, según mi opinión, no hay manera de que mi código está solicitando a las actualizaciones más ... Así que por favor dime cualquier modificación del código i hv hacer .. – NullPointerException

+0

Aunque me removeUpdates para todos los requestLocationUpdates Inicié, me pasa solo en algunos dispositivos, como el Samsung Galaxy S2. Sin embargo, parece que el ícono parpadeante del GPS desaparece después de algunos segundos más (generalmente menos de 30) – Erwan

11

Si muestra su posición y/o la brújula en su mapView, tiene que deshabilitarlos. Si no haces eso, el GPS aún está activo.

Ex:

private MapView mapView; 
private MyLocationOverlay Location; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.frame_layout); 

    mapView = (MapView) this.findViewById(R.id.mapView); 
    Location = new MyLocationOverlay(this, mapView); 
    Location.enableMyLocation(); 
    Location.enableCompass(); 
    mapView.getOverlays().add(Location); 
} 

@Override 
public void onDestroy() { 
    Location.disableMyLocation(); 
    Location.disableCompass(); 
} 
+2

Esta fue la respuesta para mí. ¡Gracias! Para la API actualizada de Google Maps, tuve que hacer esto: 'map.setMyLocationEnabled (false);' – Robert

3

Además de las respuestas anteriores, en la situación que usted describe, me gustaría recomendar a comprobar cuidadosamente las bibliotecas de terceros que se utilizan en su proyecto, en especial algunas bibliotecas de análisis .

que tenían un gran dolor de cabeza antes de que me di cuenta de que el icono del GPS fue causado por la ráfaga que se ha instalado de forma incorrecta (FlurryAgent.setReportLocation(true) se estableció y onEndSession() no fue llamado en onStop()).

Cuestiones relacionadas