public class Activity extends AppCompatActivity {
void onCreate()
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Thread t = new Thread(MyRunnable);
t.start();
try {
t.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
ccc();
...
...
}
});
}
private class MyRunnable implements Runnable{
@Override
public void run() {
aaa();
}
}
...
void aaa(){
bbb();
...
}
...
}
구조는 대략 이렇습니다.
버튼을 클릭하면 스레드 t에서 aaa()를 실행하고 내부의 bbb()와 aaa()까지 완전히 끝나고 나면 ccc()를 시작하게 하려고 합니다.
스레드에 익숙하지 않아서 여기저기서 예시들 찾아봤는데요..
join을 사용하면 그 스레드가 완전히 끝날 때까지 다음으로 넘어가지 않는다고 하여 join을 사용해보았습니다만
Toast를 이용해서 확인해보니 스레드 t 내용이 끝나기도 전에 ccc()와 그 아래 내용들이 실행되더라구요.
제가 스레드를 어느 부분에서 잘못 사용하고 있는건가요?