package common.asynctask; import android.os.AsyncTask; public abstract class NamedAsyncTask extends AsyncTask { private String oldName; private void setNewThreadName(String name) { oldName = Thread.currentThread().getName(); if(!TextUtils.isEmpty(name)) Thread.currentThread().setName(name); } protected abstract String getThreadName(); @Override protected void onPreExecute() { super.onPreExecute(); setNewThreadName(getThreadName()); } @Override protected void onCancelled() { Thread.currentThread().setName(oldName); super.onCancelled(); } }