2011-10-07 25 views
25

¿Es posible dar un nombre a subproceso de fondo de un AsyncTask, como para Hilos normales en Java:Nombre del hilo de un AsyncTask

Thread(Runnable target, String name) 

que he visto el código de AsyncTask y el constructor por defecto se acaba de dar un nombre por defecto

private static final ThreadFactory sThreadFactory = new ThreadFactory() { 
    private final AtomicInteger mCount = new AtomicInteger(1); 

    public Thread newThread(Runnable r) { 
     return new Thread(r, "AsyncTask #" + mCount.getAndIncrement()); 
    } 
}; 

Quiero hacer eso, como cuando puedo depurar Quiero saber lo que AsyncTask está accediendo a un método en una clase de ayuda.

+3

¿qué quiere decir, no puede extenderse? debe extender AsyncTask para usarlo. ¿por qué no ampliar el constructor predeterminado y agregar un miembro privado "nombre" que configura en el constructor? – Maggie

Respuesta

55

Intente llamar esto desde el interior doInBackground():

Thread.currentThread().setName("some custom name"); 
-5

¿Por qué no puede extender la AsyncTask? No entiendo.

Extiendo mi AsyncTask mil veces con el depurador me muestra que AsyncTask está maldiciendo.

public class MyAsyncTask extends AsyncTask<Void, Void, Void>{ 
} 

al igual que

+1

Si quiero extender la clase, tengo que implementar el método doInBackground, y ¿qué pasa con el nombre? Esto no está en un contructor predeterminado. – Dayerman

+0

Luego crea tu contructor de MyAsyncTask. Cuando crea AysncTask, usa la nueva MyAsyncTask (String name) para iniciar su asyncTask. Y todavía no entiendo lo que quiere decir con el nombre de AsyncTask –

+1

Por el nombre quise agregar un parámetro a la clase que es el nombre de la asynctask. Como el primer comentario de mi pregunta. Mi idea es agregar el nombre cuando creo el nuevo hilo "AsyncTask #" + mCount.getAndIncrement() + name); por ejemplo. – Dayerman

Cuestiones relacionadas