andorid thread使用sleep方法遇到的问题.
山城忙碌人 2015-01-27 10:28:31 1 需求描述。
我的闹钟要实现重复播放,比如周一至周五早上七点触发闹钟广播,然后每天早上七点,闹钟重复播放三次(这里是动态设置的,最少一次,最多10次),每次间隔五分钟,并且在播放第二次的时候,我可以取消剩下未播放的闹钟(类似android自带的闹钟),我使用了thread的sleep方法来做重复播放三次的工作。
2 问题描述。
每天早上7点,能接收到系统发出的广播,第一次闹钟能正常播放,但间隔五分钟基本都不准,基本上都间隔了40分钟后线程才会被继续执行,奇怪的是这个问题只有早上才会出现,如果我白天设置闹钟,每次间隔都不会出问题。我怀疑是不是anodrid在锁屏状态达到几个小时后,thread的sleep方法有误差.
3 代理如下.
while (playCount < bean.getaPlayCount()) {
Util.printErrorLog( "playCount:"+playCount+",interval,"+bean.getaIntervalTime()+",播放总数:"+bean.getaPlayCount());
try {
Thread.sleep(1000*60*5);
} catch (InterruptedException e) {
e.printStackTrace();
Util.printErrorLog("控制线程播放次数出现异常!"+e.getMessage());
}
......
}
输出的日志正常,但实际的间隔时间就是不对.