u010932348 2015-01-13 02:11 采纳率: 0%
浏览 3547

两个定时器嵌套调用问题

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);

  • 写回答

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 求三轴之间相互配合画圆以及直线的算法