一个线程中的Thread.sleep()使UI线程也进入休眠状态

Jim*_*mmy 1 java multithreading android

我有扩展线程的类,在其中一个方法中我添加了Thread.sleep(5000)来等待某些东西,我从onCreate()开始这个线程就像这样

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

MyClass mc = MyClass();
mc.start(); 
mc.join();
// do something

}
Run Code Online (Sandbox Code Playgroud)

并在MyClass运行方法我做这样的事情

Class MyClass extends Thread {

public void run() {
sleep(15000);
// do something
}

}
Run Code Online (Sandbox Code Playgroud)

如果我运行MyClass线程(调用睡眠方法),我看到UI线程也会睡5秒钟的问题,为什么会这样?

Mic*_*rdt 5

好吧,这是你的问题:

mc.join();
Run Code Online (Sandbox Code Playgroud)

这使得当前线程(即UI)等待,直到表示的线程mc完成其run()方法.join()无论如何你想要实现什么?