Foros del Web » Programando para Internet » Android »

Detener/iniciar un thread desde un evento 'onClick'

Estas en el tema de Detener/iniciar un thread desde un evento 'onClick' en el foro de Android en Foros del Web. Buenas. Tengo una app que lanza un thread que corre en background. He puesto un botón en la UI, y quiero que funcione en modo ...
  #1 (permalink)  
Antiguo 13/09/2015, 12:27
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Pregunta Detener/iniciar un thread desde un evento 'onClick'

Buenas.

Tengo una app que lanza un thread que corre en background. He puesto un botón en la UI, y quiero que funcione en modo "on-off". Es decir, que si el hilo está en ejecución, al pulsarlo mande la orden de detener el bucle while. I si no lo está, que llame al método del hilo encargado de rearrancarlo.

¿Alguna aproximación?

Gracias!
  #2 (permalink)  
Antiguo 30/09/2015, 15:37
Avatar de cocu3  
Fecha de Ingreso: diciembre-2007
Mensajes: 235
Antigüedad: 16 años, 4 meses
Puntos: 6
Respuesta: Detener/iniciar un thread desde un evento 'onClick'

y si utilizas el AsyncTask, sería la mejor opcion,
saludos
__________________
editor de fotos
  #3 (permalink)  
Antiguo 01/10/2015, 00:29
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Detener/iniciar un thread desde un evento 'onClick'

Para la sincronización con el thread deberías usar un semáforo.
__________________
Aviso: No se resuelven dudas por MP!
  #4 (permalink)  
Antiguo 01/10/2015, 02:36
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Detener/iniciar un thread desde un evento 'onClick'

@cocu3: Creo que ya me lo has comentado en otro hilo, gracias. ;). La cuestión es: Si utilizo AsyncTask, ¿puedo prescindir de Thread? ¿Cuál es la diferencia entre ambos?
@Malenko: Eso ya lo tengo en cuenta. De hecho, el código me da error igualmente, como he preguntado en el hilo

http://www.forosdelweb.com/f165/cann...reads-1138438/

Gracias a ambos!
  #5 (permalink)  
Antiguo 01/10/2015, 04:41
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Detener/iniciar un thread desde un evento 'onClick'

La principal diferencia entre un thread y una AsyncTask es que el thread no puede acceder a la UI y la AsyncTask sí. En cambio puedes tener muchos threads simultaneos pero, en principio, solo una AsyncTask corriendo a la vez. Digo en principio porque desde HoneyComb puedes lanzar la AsyncTask en el Executor para tener varias corriendo de forma simultanea.
__________________
Aviso: No se resuelven dudas por MP!
  #6 (permalink)  
Antiguo 01/10/2015, 05:22
 
Fecha de Ingreso: noviembre-2003
Mensajes: 456
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Detener/iniciar un thread desde un evento 'onClick'

Cita:
Iniciado por Malenko Ver Mensaje
La principal diferencia entre un thread y una AsyncTask es que el thread no puede acceder a la UI y la AsyncTask sí. En cambio puedes tener muchos threads simultaneos pero, en principio, solo una AsyncTask corriendo a la vez. Digo en principio porque desde HoneyComb puedes lanzar la AsyncTask en el Executor para tener varias corriendo de forma simultanea.
Ya sabía que desde un Thread no puedo acceder a la UI, pero no sabía el límite de 1 AsyncTask. El tema de actualizar la UI lo pensaba solventar con handlers entre Thread y MainActivity.

Gracias!

Etiquetas: app, evento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:35.