2011-10-07 5 views
25

のスレッドは、Javaでの通常のスレッドのためとして、AsyncTaskのバックグラウンドスレッドに名前を付けることは可能です私はデバッグするとき、私はAsynctaskはヘルパークラスのメソッドにアクセスしているかを知りたいとデフォルト名前はAsyncTask

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()); 
    } 
}; 

によって名前が、私は、それをやってみたいです。

+3

あなたが何を意味するのか、拡張することはできませんか? AsyncTaskを拡張する必要があります。単にデフォルトのコンストラクタを拡張し、コンストラクタで設定したプライベートメンバー "name"を追加するのはなぜですか? – Maggie

答えて

55

よう

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

doInBackground()内側からこれを呼び出してみてください。

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

なぜ私は理解していないAsyncTaskを拡張できません。

私は自分のAsyncTaskを何千回もデバッガで拡張して、どのAsyncTaskが嫌なのかを教えてくれます。そう

+1

クラスを拡張したい場合は、doInBackgroundメソッドを実装する必要があります。名前はどうですか?これはデフォルトのコンストラクタではありません。 – Dayerman

+0

次に、MyAsyncTaskのコンストラクタを作成します。 AysncTaskを作成するときは、新しいMyAsyncTask(String name)を使用してasyncTaskを初期化します。そして、私はまだあなたがAsyncTaskの名前の意味を理解していません。 –

+1

名前によって、私はasynctaskの名前であるクラスにパラメータを追加しようとしていました。私の質問の1番目のコメントとして。私の考えは、新しいスレッド "AsyncTask#" + mCount.getAndIncrement()+ name)を作成するときに名前を追加することです。例えば。 – Dayerman