вы можете использовать глобальный класс:
public abstract class Global{
private static int counter = 30;
private static ProgressDialog pd;
private static Activity a;
public static synchronized void updateCounter(){
counter--;
if(counter<=0){
a.runOnUiThread(new Runnable() {
@Override
public void run() {
pd.dismiss();
}
});
}
}
}
вы должны использовать «синхронизированы» из-за одновременный доступ нитей ,
И в вашей основной деятельности начать ProgressDialog и инициализировать переменные:
Global.a = this;
Global.pd = ProgressDialog.show(this, "Tittle","Message ...", true);
, а затем начать темы.
На конце каждого потока можно затем вызвать Global.updateCounter();
один нужно будет запустить цикл постоянно проверять счетчик, который будет блокировать поток пользовательского интерфейса и не рекомендуется. – Akhil
Нет, просто напишите в onPostexecute() вашей задачи async. поэтому он будет проверять только 30 раз. то есть один раз для каждой асинхронной задачи – Ishu
также я думаю, что переменная должна делиться между всеми потоками? – thalsharif