Android应用程序在6秒后不会崩溃

时间:2014-03-10 16:45:11

标签: java android

我创建了一个按钮并将以下代码放在我的MainActivity中:

public void pauseitjack(View v)
{
    try {
        Thread.sleep(16000);

    } catch (InterruptedException e) {

        e.printStackTrace();
    }

}

我按下按钮,它确实冻结了我的UI,这是我的预期,但应用程序idd没有崩溃。我虽然这会在5秒后因ANR错误而导致我的应用程序崩溃...

2 个答案:

答案 0 :(得分:0)

并非每个设备都将看门狗定时器设置为相同的长度,并非所有功能都有看门狗。此外,睡眠允许处理器切换任务,因此它可能无论如何都不会启动看门狗。虽然在UI线程上睡觉仍然是一个坏主意。

答案 1 :(得分:0)

当您未及时响应触摸命令时,将发生ANR。

在您的情况下,如果您只按一下按钮不会导致ANR,但如果您在睡眠运行时再次按下该按钮,系统将尝试将触摸发送到您的按钮,您赢了因睡眠而导致时间反应,导致ANR。