Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 15/01/16, 11:07:08
Avatar de elamas
elamas elamas no está en línea
Usuario poco activo
Mensajes: 12
 
Fecha de registro: dic 2015
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
¿No hay que limpiar ni reutilizar los runnables?

Hola,
veo en casi todos los ejemplos, como por ejemplo en esta página
http://developer.android.com/intl/es...#WorkerThreads
que se hacen cosas como ésta:
Código:
public void onClick(View v) {
    new Thread(new Runnable() {
        public void run() {
            Bitmap b = loadImageFromNetwork("http://example.com/image.png");
            mImageView.setImageBitmap(b);
        }
    }).start();
}
Mi pregunta es ¿si se da mil veces al botón se crean mill runables? ¿No hay que preocuparse y tratar de crear uno único y que se reutilice? ¿No hace falta tampoco ponerlo a null cuando se termine la ejecución?

Lo mismo veo con los AsyncTask. Por ejemplo en la misma página de antes
http://developer.android.com/intl/es...d-threads.html
hacen esto
Código:
public void onClick(View v) {
    new DownloadImageTask().execute("http://example.com/image.png");
}
En este caso comprobé que los AsyncTask no son reutilizables, cuando traté de hacerlo me dió este error.
Código:
Caused by: java.lang.IllegalStateException: Cannot execute task: the task has already been executed (a task can be executed only once)
Un saludo
Responder Con Cita


  #2  
Viejo 15/01/16, 13:14:16
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
No tiene sentido porque son asíncronos, y por tanto no puedes saber donde establecerlos a null o limpiarlos. Para una cosa buena que tiene Java que es su recolector de basura déjalo que trabaje.
Responder Con Cita
  #3  
Viejo 15/01/16, 22:19:59
Avatar de elamas
elamas elamas no está en línea
Usuario poco activo
Mensajes: 12
 
Fecha de registro: dic 2015
Mensajes: 12
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Genial, una preocupación menos.

Gracias kriogeN
Responder Con Cita
  #4  
Viejo 16/01/16, 14:43:01
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Marcamos como Solucionado
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 08:09:59 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007