Как узнать в Java , что поток закончил свое выполнение?
Пытаюсь сделать чтобы после выполнение потока вызвался метод activity()
, но он выполняется сразу после вызова потока.
Можно как то отследить когда закончится поток или можно как то другим классом это сделать?
Runnable runnable = new Runnable() {
public void run() {
for (int i = 0; i < 50; i++) {
Log.d("array", "1--one " + i);
for (int k = 0; k < 40; k++) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.d("array", "2--two " + k);
if (k == 5) break;
}
}
}
};
Thread thread = new Thread(runnable);
thread.start();
try {
thread.join(3000);
} catch (InterruptedException e) {
}
activity();
Log.d("array", "--stop--");
Ответы (1 шт):
Автор решения: DavidJava
→ Ссылка
Да, метод join
можно вызывать с аргументами. Если вы указываете 3000 в скобках, вы сообщаете компилятору, что нужно ждать выполнения потока 3000 миллисекунд. Если не указывать аргументы, то компилятор ждёт полной остановки потока. В обоих случаях, пока не закончится действие метода join
, activity()
вызываться не будет.