我正在尝试使用一个每隔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
答案 0 :(得分:3)
您需要强制设备保持清醒状态。但要小心,这会非常快地耗尽电池!
PowerManager
的{{1}}就是您所需要的:
https://developer.android.com/reference/android/os/PowerManager.WakeLock.html
完成主题时,WakeLock
acquire()
,WakeLock
,当你完成时。
release()