为了账号安全,请及时绑定邮箱和手机立即绑定

求助大神,关于java延时函数的问题,详细内容如下所示!

求助大神,关于java延时函数的问题,详细内容如下所示!

达令说 2021-05-04 11:07:33
我现在是这样的~~~one1.stop();one2.stop();one3.stop();======================我想弄成one1.stop();//延时3秒one2.stop();//延时3秒one3.stop();===============================================该怎样弄·~?我的stop();前后都有图片移动的动画···若使用了Thread.currentThread().sleep(1000);会使动画也停止了。
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

在Java中有时候需要使程序暂停一点时间,称为延时。普通延时用Thread.sleep(int)方法,这很简单。它将当前线程挂起指定的毫秒数。如

Java 代码复制内容到剪贴板
try
{
Thread.currentThread().sleep(1000);//毫秒
}
catch(Exception e){}
在这里需要解释一下线程沉睡的时间。sleep()方法并不能够让程序"严格"的沉睡指定的时间。例如当使用5000作为sleep()方法的参数时,线 程可能在实际被挂起5000.001毫秒后才会继续运行。当然,对于一般的应用程序来说,sleep()方法对时间控制的精度足够了。

但是如果要使用精确延时,最好使用Timer类:

Java 代码复制内容到剪贴板
Timer timer=new Timer();//实例化Timer类
timer.schedule(new TimerTask(){
public void run(){
System.out.println("退出");
this.cancel();}},500);//五百毫秒
这种延时比sleep精确。上述延时方法只运行一次,如果需要运行多次, 使用timer.schedule(new MyTask(), 1000, 2000); 则每间隔2秒执行MyTask()


查看完整回答
反对 回复 2021-05-09
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

最直接的方法one1.stop();Thread.sleep(3000);//这里会有异常,处里一下就行one2.stop();Thread.sleep(3000);one3.stop();

查看完整回答
反对 回复 2021-05-09
  • 2 回答
  • 0 关注
  • 317 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信