if(message.trim().startsWith(ContactsEntry.CONTACT_RECEIVED_MESSGAE_PREFIX)){
//System.out.println("The contactTimer "+(null == contactTimer)+",The contactReloadTimer "+(null == contactReloadTimer));
messageCount++;
if (null == contactTimer) {
contactTimer = new Timer();
}
contactTask = new TimerTask() {
public void run() {
int size = recieveInterval / (messageCount*avageTime);
System.out.println("************The size is " + size + " ,The messageCount is ****************"+ messageCount);
if (size <3) {
rightNowReload = false;
} else {
rightNowReload = true;
}
//-----------------------------根据rightNowReload 判断是否立即加载-----------------------------------------
if(rightNowReload){
System.out.println(".........rightNowReload.........");
GetPersonList.handleRecivedMessage(message);
rightNowReload = false;
messageCount = 0;
contactTimer.cancel();
contactTimer=null;
}else{
if(null==contactReloadTimer){
contactReloadTimer = new Timer();
}
timerTask = new TimerTask() {
public void run() {
System.out.println(".........Not rightNowReload............");
GetPersonList.handleRecivedMessage(message);
rightNowReload = false;
messageCount = 0;
contactTimer.cancel();
contactTimer=null;
contactReloadTimer.cancel();
contactReloadTimer = null;
}
};
contactReloadTimer.schedule(timerTask, queryInterval);
}
// contactTimer.cancel();
// contactTimer=null;
// messageCount = 0;
}
};
contactTimer.schedule(contactTask, recieveInterval);
两个定时器嵌套调用问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- u010932348 2015-01-13 02:15关注
两个定时器一个用来统计一定时间内接到的消息数量,另一个根据消息数量来决定是否立即加载还是延迟一段时间后加载,大的环境JDK1.4下,问题原因是根据收到的消息做更新,但若是一次接收到太多的消息,针对每次的更新会导致死机,代码是有问题的,望大神们给予建议
解决 无用评论 打赏 举报
悬赏问题
- ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法