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

lion7beck 2014-11-18 10:42:10

请教下大家在java中怎么写下面这个条件更好些?感谢!
void wait_for_10_sec(){
if(没过10秒){ //这个条件怎么写比较准确和简洁些??
return;
}
//过了10秒才能走到下面
...
}
...全文
973 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);
}
代码下载地址: https://pan.quark.cn/s/48b01f0717eb 本文将详细研究有关rtl8822蓝牙驱动及其适配的相关信息。rtl8822是由Realtek公司设计的一种无线通信芯片,主要应用于提供Wi-Fi和蓝牙功能。该芯片被广泛应用于多种现代电子设备,例如笔记本电脑、路由器、智能手机以及平板电脑等。 我们首先需要理解“驱动”的定义。驱动程序充当计算机硬件与操作系统之间的介,负责将硬件指令解释为操作系统能够识别的语言。对于rtl8822芯片而言,蓝牙驱动是控制该芯片执行蓝牙通信的核心软件模块,它确保设备能够准确识别并连接其他蓝牙设备。 rtl8822驱动资料通常包括以下几个部分: 1. **Bluetooth Baseband (BB) 驱动**:这一部分负责处理蓝牙的底层通信,包括射频信号的编码与解码,以及数据包的发送和接收。 2. **Bluetooth Host Controller Interface (HCI)**:HCI层是蓝牙驱动的重要组成部分,它确立了蓝牙主机(例如CPU)与控制器(例如rtl8822芯片)之间的接口协议。借助HCI,应用程序能够与蓝牙设备进行互动,如配对、建立连接、传输数据等。 3. **移植文档**:移植文档是将rtl8822蓝牙驱动适配至不同操作系统或平台的关键指南,其通常包含了详尽的步骤、注意事项以及可能遇到的问题的解决方案。这些文档有助于开发者理解驱动的工作原理,并根据目标系统进行必要的调整。 4. **芯片手册**:Realtek为rtl8822芯片提供的手册是开发和调试驱动的重要参考资料,其涵盖了芯片的硬件特性、寄存器布局、接口规范、功耗管理等内容。熟悉这些信息能够帮助开发者更深入地...

62,620

社区成员

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

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