java中如何在代码中判断时间是否过了10秒

lion7beck 2014-11-18 10:42:10

请教下大家在java中怎么写下面这个条件更好些?感谢!
void wait_for_10_sec(){
if(没过10秒){ //这个条件怎么写比较准确和简洁些??
return;
}
//过了10秒才能走到下面
...
}
...全文
971 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
奋斗年轻人 2016-12-26
  • 打赏
  • 举报
回复
引用 9 楼 lion7beckham 的回复:
感谢各位朋友! 其实两个变量完全OK了。我当时想得复杂了,其实不用sleep啥的啦,哈哈:

			long previous = 0L;
			...
			{
				Calendar c = Calendar.getInstance();
				long now = c.getTimeInMillis();     //获取当前时间
				Log.d(TAG, "now-->" + now + ",,previous-->"+previous + ",,now - previous -->" + (now - previous));	
				if(now - previous>= 5000){  
					// 两次点击时间差大于5秒
					// do something
					previous = now ;	  //更新 previous
					}
	//			previous = now ;
				} 
		      return true;
新手,能否粘明白些?
奋斗年轻人 2016-12-26
  • 打赏
  • 举报
回复
引用 7 楼 wcs1989 的回复:

private volatile boolean sec_pass=true;
Timer timer=new Timer();
void wait_for_10_sec(){
    if(!sec_pass){
    return ;
   }
   //do something
   timer.schedule(new TimerTask(){
     public void run(){sec_pass=true;}
   },1000*10);
}
新手,能否粘明白些?
日知己所无 2014-11-19
  • 打赏
  • 举报
回复
解决了就好。
tony4geek 2014-11-19
  • 打赏
  • 举报
回复
解决了就好。
lion7beck 2014-11-19
  • 打赏
  • 举报
回复
感谢各位朋友! 其实两个变量完全OK了。我当时想得复杂了,其实不用sleep啥的啦,哈哈:

			long previous = 0L;
			...
			{
				Calendar c = Calendar.getInstance();
				long now = c.getTimeInMillis();     //获取当前时间
				Log.d(TAG, "now-->" + now + ",,previous-->"+previous + ",,now - previous -->" + (now - previous));	
				if(now - previous>= 5000){  
					// 两次点击时间差大于5秒
					// do something
					previous = now ;	  //更新 previous
					}
	//			previous = now ;
				} 
		      return true;
qzw1210 2014-11-18
  • 打赏
  • 举报
回复
定时器Timer
shayebuhui0 2014-11-18
  • 打赏
  • 举报
回复
弄一个单独的线程来跑。
猎魔人-不纯 2014-11-18
  • 打赏
  • 举报
回复
搞个变量存时间,现在-过去
lion7beck 2014-11-18
  • 打赏
  • 举报
回复
引用 1 楼 wcs1989 的回复:
Thread.sleep(10*1000)
直接sleep不好。因为wait_for_10_sec()的作用是响应某个按键事件! 若sleep,只是推迟了响应时间。我想起到的作用是,若点击了一次,就响应;但若下次点击在10秒之内,就不响应。反之则响应。
S117 2014-11-18
  • 打赏
  • 举报
回复
Thread.sleep(10*1000) 让当前线程睡眠10秒
O_森_O 2014-11-18
  • 打赏
  • 举报
回复
Thread.sleep(10*1000)
放纵的青春 2014-11-18
  • 打赏
  • 举报
回复
最简单的办法 定义2个变量 一个是第一次点的时间 一个是这次点击的时间 然后2个时间比较就好了
O_森_O 2014-11-18
  • 打赏
  • 举报
回复

private volatile boolean sec_pass=true;
Timer timer=new Timer();
void wait_for_10_sec(){
    if(!sec_pass){
    return ;
   }
   //do something
   timer.schedule(new TimerTask(){
     public void run(){sec_pass=true;}
   },1000*10);
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧