主线程阻塞了,为啥运行没有报错?
来源:7-3 主线程的 Looper 为什么不会导致应用 ANR ?

AndroidHunter
2020-02-16
老师您好,这里主线程阻塞了,为啥运行没有报错?
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final CountDownLatch latch = new CountDownLatch(1); // 声明计数器
Thread t = new Thread() {
public void run() {
try {
sleep(1000 * 6);
} catch (InterruptedException e) {
e.printStackTrace();
}
latch.countDown(); // 计数器减1
}
};
t.start();
try {
// 主线程阻塞了,为啥运行没有报错?
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
我认为上面这种阻塞属于性能问题,不属于异常问题,只是会让界面显示延迟。
是否可以这样理解:
开发中是可以让主线程阻塞的(哪怕阻塞十几秒),只要别导致事件不能响应就行。
写回答
1回答
-
这个应该会anr,你理解的差不多
122023-02-25
相似问题