Nunca he podido averiguar la forma en que Android recuerda su última ubicación conocida. Si parece recordar la ubicación de hace varias horas pero no hace varios segundos. Creo que es mejor dar un ejemplo de lo que quiero decir.
Hace poco estuve en el área de la bahía. Estaba usando los mapas de Google en mi Android y estaba cerca del Campus de Google en Mountain View. Estaba usando mapas con GPS habilitado y después de un tiempo obtuve un bloqueo de GPS adecuado que usé para navegar por el área.
Cuando volví a San Francisco más tarde, lo estaba usando para recorrer la ciudad. Cada vez que encendía los mapas, mi ubicación volvía a estar en Mountain View. Aproximadamente 10 segundos después de que se cerró el GPS, obtuve mi ubicación real. Si apagué y volví a encender el teléfono unos segundos después, sucedió lo mismo: cree que estoy en un lugar donde estaba horas antes y luego entra en acción con mi ubicación real. Esto sucede todo el tiempo, recordando dónde estaba hace horas, no dónde estaba hace unos momentos. Una vez que he estado en un área durante un cierto tiempo, ahora se convierte en la nueva "última ubicación conocida".
¿Por qué, una vez que obtengo un bloqueo GPS preciso, Android no lo registra como la "última ubicación conocida" en lugar de una anterior?
fuente
Tengo entendido que Android usa actualizaciones de ubicación de tipo grueso y fino y estas actualizaciones también pueden tener diferentes métricas de calidad. Podría ser que la aplicación Google Maps no tuviera señal de GPS y Wifi el tiempo suficiente en su nueva ubicación para ser de una calidad lo suficientemente alta como para ser la última ubicación conocida.
Los documentos del desarrollador en http://developer.android.com/guide/topics/location/obtaining-user-location.html dan algunos modelos de ejemplo para obtener ubicaciones de usuarios que podrían dar una idea de cómo funciona. Pero supongo que Google Maps, y probablemente otros mapas, hacen lo suyo.
fuente