Ver Mensaje Individual
  #2  
Viejo 23/02/14, 23:22:26
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
El IntentService termina cuando termina el onHandleIntent (salvo que se haya puesto a ejecutarse otro IntentService igual antes de que ese IntentService termine, en ese caso caso se volverá a ejecutar el onHandleIntent otra vez para el Intent nuevo), es decir, antes de que se ejecute el onConnected porque el código del LocationClient se ejecuta cuando el onHandleIntent termina.

Es un poco lioso, pero llevo 2 semanas peleándome con IntentServices y los tengo bastante trillados.

Yo tengo que hacer una cosa parecida, necesito una respuesta de un BroadcastReceiver para continuar la ejecución, y lo que hago es lo siguiente:

Creas un AtomicBoolean a nivel global, lo inicias a false, y justo después de iniciar el LocationClient haces:

do {
Thread.sleep(1000);
} while (!gpsIniciado.setAndCompare(true,false);

Y en el onConnected haces:

gpsIniciado.set(true);

De todas formas aún con todo esto, no se si el IntentService es lo más apropiado para lo que quieres hacer, sin conocer en detalle tu aplicación es muy probable que con un AsyncTask sea suficiente.
Responder Con Cita