2011-09-28 14 views
5

En Eclipse en la ventana depuración veo un hilo que se muestra:Android: Identificar lo que el código de un AsyncTask se está ejecutando

Tema < 16> AsyncTask # 11

¿Hay una manera de determinar qué sección real de código al que se refiere AsyncTask? ¿Hay algo que tenga que agregar en el código para identificar ese hilo en funcionamiento?

+0

posible duplicado de [Name the Thread of a AsyncTask] (http://stackoverflow.com/questions/7684182/name-the-thread-of-an-asynctask) – aleb

+0

@aleb Usualmente las publicaciones más antiguas no se consideran duplicadas de publicaciones más recientes, a pesar de que el engañado tiene más puntos de vista y votos. – laalto

Respuesta

12

Usted puede nombrar el hilo AsyncTask al comienzo de su función doInBackground:

public void doInBackground(Params... params) { 
    Thread.currentThread().setName("Foo (AsyncTask)"); 
    // ... rest of your AsyncTask processing ... 
} 

El nombre especificado se mostrará en la ventana de depuración de Eclipse, así como lista de temas en perspectiva DDMS.

+0

Gracias, eso hizo el trabajo. Sin embargo, noté que hay AsyncTasks apareciendo en la ventana de depuración sin ningún nombre. Revisé todo mi código para asegurarme de que el código sugerido estuviera en todos ellos. Esto me lleva a pensar que algún otro código interno debe generar esas tareas. ¿Alguna idea de cómo puedo descubrir quién los engendró? – AndroidDev

+0

Nada de lo que sea consciente. Si realmente desea investigar eso a fondo, puede habilitar y deshabilitar de forma selectiva las bibliotecas externas y los componentes del sistema que está utilizando en su aplicación, y ver cómo influye en la lista de subprocesos. – Xion

+0

Es probable que un CursorLoader + CursorAdapter use AsyncTasks internamente. – pjv

Cuestiones relacionadas