2011-09-28 12 views
5

In Eclipse nella finestra Debug vedo un filo che mostra:Android: Identificare quale codice un AsyncTask è in esecuzione

Discussione < 16> AsyncTask # 11

C'è un modo per determinare quale sezione effettiva di codice a cui fa riferimento AsyncTask? C'è qualcosa che devo aggiungere nel codice per identificare quel thread in esecuzione?

+0

possibile duplicato di [Nome del thread di un AsyncTask] (http://stackoverflow.com/questions/7684182/name-the-thread-of-an-asynctask) – aleb

+0

@aleb In genere i post precedenti non sono considerati duplicati di nuovi post, anche se il dupe ha più punti di vista e voti. – laalto

risposta

12

È possibile denominare il filo AsyncTask all'inizio della funzione doInBackground:

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

Il nome specificato verrà visualizzato nella finestra di debug di Eclipse, così come elenco delle discussioni in prospettiva DDMS.

+0

Grazie, ha fatto il lavoro. Tuttavia, ho notato che ci sono AsyncTasks visualizzati nella finestra Debug senza alcun nome. Ho controllato tutto il mio codice per assicurarmi che il codice suggerito fosse in tutti loro. Questo mi porta a credere che qualche altro codice interno debba essere a capo di quei compiti. Qualche idea su come posso scoprire chi li ha generati? – AndroidDev

+0

Nulla di ciò che io sappia. Se vuoi davvero approfondire la questione, puoi abilitare e disabilitare selettivamente le librerie esterne ei componenti di sistema che stai utilizzando nella tua app e vedere come influenza l'elenco di thread. – Xion

+0

È probabile che CursorLoader + CursorAdapter utilizzi AsyncTasks internamente. – pjv

Problemi correlati