我创建了一个按钮并将以下代码放在我的MainActivity中:
public void pauseitjack(View v)
{
try {
Thread.sleep(16000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
我按下按钮,它确实冻结了我的UI,这是我的预期,但应用程序idd没有崩溃。我虽然这会在5秒后因ANR错误而导致我的应用程序崩溃...
答案 0 :(得分:0)
并非每个设备都将看门狗定时器设置为相同的长度,并非所有功能都有看门狗。此外,睡眠允许处理器切换任务,因此它可能无论如何都不会启动看门狗。虽然在UI线程上睡觉仍然是一个坏主意。
答案 1 :(得分:0)
当您未及时响应触摸命令时,将发生ANR。
在您的情况下,如果您只按一下按钮不会导致ANR,但如果您在睡眠运行时再次按下该按钮,系统将尝试将触摸发送到您的按钮,您赢了因睡眠而导致时间反应,导致ANR。