为什么handler.post后还是会阻塞主线程

2025-05-06 17:03:18
推荐回答(1个)
回答1:

原因很简单!!因为你使用了Thread.sleep(1000); 它本身就是停止等待!!而你使用的handler.post(runable)本身就不是子线程,而是在主线程中运行中,以子线程的方式运行代码而已!! 吧你里面的代码修改一下 if(time > 0){ time--; handler.postDelayed(this, 1000); //Thread.sleep(1000);//try catch省略... 就完全正确了,handler本身就气功了延时执行的功能 ...