Soru Bir AsyncTask iş parçacığının adını adlandırın.


Bir AsyncTask'in arka plan iş parçacığına, Java'daki normal iş parçacıklarına bir ad vermek mümkün mü?

Thread(Runnable target, String name) 

AsyncTask kodunu gördüm ve varsayılan kurucu varsayılan olarak bir ad veriyor

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

Bunu yapmak istiyorum, hata ayıklandığım gibi hangi Asynctask'ın bir yardımcı sınıftaki bir yönteme eriştiğini bilmek istiyorum.


25
2017-10-07 07:21


Menşei


Ne demek istiyorsun, uzatılamaz mı? Kullanmak için AsyncTask'ı genişletmelisiniz. Neden varsayılan kurucuyu genişletmiyor ve kurucuda belirlediğiniz özel bir üye adı da eklemiyorsunuz? - Maggie


Cevaplar:


Bunu içinden çağırmayı dene doInBackground():

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

57
2017-10-07 07:34





Neden anlamıyorum AsyncTask uzatamıyorsun.

AsyncTask'ımı bin kez debugger ile uzatıyorum, AsyncTask'ın orospu olduğunu gösteriyor.

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

öyle öyle


-5
2017-10-07 07:30



Eğer sınıfı genişletmek istersem, doInBackground yöntemini uygulamak zorundayım ve adından ne haberim? Bu varsayılan bir denetleyicide değil. - Dayerman
Daha sonra MyAsyncTask'ınızı hazırlayın. AysncTask oluşturduğunuzda, asyncTask'ınızı başlatmak için yeni MyAsyncTask (String name) kullanırsınız. Ve hala AsyncTask ismiyle ne demek istediğini anlamadım. - Terence Lui
Asynctask'ın adı olan sınıfa bir parametre eklemek istedim. Benim sorumun ilk yorumu olarak. Benim fikrim yeni Konu "AsyncTask #" + mCount.getAndIncrement () + name) oluşturduğumda eklemek; Örneğin. - Dayerman