el gps suele tardar un par de minutos la primera
vez en un lugar "nuevo".
si haces caso, pasa lo mismo con google maps
cuando visitas una ciudad por primera vez;
parece que resuelva tu paredero casi de
inmediato, pero un minuto mas tarde, de repente,
te "encuentras" en otro lugar, no muy lejos, pero
diferente. esto se debe a que google se sirve de
tu servicio cellular or wifi para localizarte. mientras
tanto, el gps esta buscando los satelites. cuando
pueda calcular tu paredero, lo indica en el mapa.
ultimamente, la demora es corta debido a lo que
explico abajo.
en tu caso - con tu app - nada mas tienes el gps,
asi que tienes que esperar. si incluyes fusionlocation
en tu app, funcionaria iqual que google maps (pues
estarias usando las mismas herrimientas que google)
google mantiene una base de datos de wifis y de
las torres de servicio celular a
traves del mundo. hace mucho tiempo que
viene adquiriendola. para una aproximacion de tu
posicion, se sirve de tu direccion ip (con el servicio
celular) y de las ya conocidas coordinadas de
los wifis cercanos cuyas senales captura.
cada vez que alguien busca su posicion con google maps,
la app captura las senales de wifis y torres cercanos,
y las manda a google para mantener la base de datos.
imaginate la cantidad de posiciones que tiene, dado
el numero de aparatos android en funcion...
cuanto mas grande sea la base de datos, menos necesidad
tiene google del gps (al menos en las ciudades. en
la carretera, todavia depende de el. pero una vez
en ruta, el gps no pierde la senal)