Android线程暂停待机状态

时间:2013-09-11 14:24:29

标签: android sleep thread-sleep

我正在尝试使用一个每隔N秒在文本文件中写入一个值的线程编写一个简单的Activity。

问题是,几分钟后我运行了Activity,手机处于待机状态,线程有时会停止更长时间,甚至几分钟。

在Run()中我要写文件而不是睡眠N秒。

public void run() {
    isrunning = true;
int cont=0;
    try {
        while (isrunning)
        {
            es.writeSD("- THREAD:" + cont, true);
            Thread.sleep(1000);
            es.writeSD("- THREAD - sending: " + cont,true);             
            cont++;
        }
    } 
    catch (InterruptedException e) {
        es.writeSD("- THREAD - InterruptedException: " + e.getMessage(),true);
    }
    catch (Exception e) {
        es.scriviSD("- THREAD - Exception: " + e.getMessage(),true);
    }   
}

这是带有时间戳的日志

20130911T154448: - THREAD:36

20130911T154449: - THREAD发送:36

20130911T154449 : - THREAD:37

20130911T154652 : - THREAD发送:37

20130911T154652: - THREAD:38

20130911T154656: - THREAD发送:38

1 个答案:

答案 0 :(得分:3)

您需要强制设备保持清醒状态。但要小心,这会非常快地耗尽电池!

PowerManager的{​​{1}}就是您所需要的: https://developer.android.com/reference/android/os/PowerManager.WakeLock.html

完成主题时,WakeLock acquire()WakeLock,当你完成时。

release()