2011-12-09 8 views
6

プロファイリングの目的でAndroidにAsyncTasksの名前を付ける方法はありますか?今のところ、AsyncTasksだけで私は何をしたいことは、容易にトレースファイルにそれらを識別するためにいくつかの方法でそれらに名前を付けることができるようにすることですAndroidでプロファイリングするためのAsyncTaskの名前付け

[N] AsyncTask #1 
[M] AsyncTask #2 
[K] AsyncTask #3 
[L] AsyncTask #4 
etc... 

としてプロファイラに表示されます。

答えて

16

スレッド内で実行されているコードから現在のスレッドの名前を変更できます。たとえば、doInBackground()関数に次のコードを追加します。

String oldName = Thread.currentThread().getName(); 
Thread.currentThread().setName("MY-ASYNC"); 
... 
<your code here> 
... 
Thread.currentThread().setName(oldName); 
+0

うまく働いてくれてありがとう! – Slim

+0

私が好きなもう一つのトリックは、AsyncTaskを拡張してバックグラウンドタスクのための独自の抽象基盤を作成することです。doInBackground()ではThread.currentThread()。setName(this.class.getSimpleName());これは、子クラスに対して正しく変換されます。 – greg7gkb

+0

最後にsetName(oldName)を呼び出すのはなぜですか? – aleb

関連する問題