' La duda es: Como sé que ya TERMINÓ
la respuesta es: no lo sabes
tu StartServiceAndWait() no sirve mas que para anunciar
que algo esta "listo para servir". no tiene nada que
ver con el estado del servicio despues.
no sirve para indicar que las coordinadas han sido captadas. necesitas
otra funcion que funciona igual que ejecutas cuando las coordinadas se
conozcan. Es esa funcion para que a que vas a esperar.
si has usado la clase CamEx de erel para manejar la camara, sabras
que hay una Camera_Ready funcion. solo quiere decir que la
camara esta initializada para sacar fotos. no tiene nada que ver con
la toma de fotos. para esto hay otra funcion Camera_PictureTaken
(o sea, foto sacada). cuando la camara saca una foto, usarias
wait for Camera_PictureTaken, no wait for Camera_Ready.
por ejemplo, y si leo bien tu codigo, en la funcion
FusedLocationProvider1_LocationChanged(Location1 As Location)
podrias poner despues de: Log("GPS_Manual -> FusedLocationProvider1_LocationChanged END")
CallSubDelayed2(Main, "Service_Completed", "Location updated")
y en main:
wait for Service_Completed( Message as String)
prueba el ejemplo adjunto. si comprendo tu duda, creo que el ejemplo espera a que termine la localizacion. ya nos diras.