我正在运行一个应用程序,我有点想创建一个超时,我的方法在短时间内被调用了太多次。我想确定如果仅经过5秒,则只能再次调用该方法。我该怎么办?
答案 0 :(得分:1)
不进入线程和计时器等的简单方法是在调用方法并存储时获取当前时间。在下一个通话中,您将新的当前时间与旧的时间进行比较。如果5秒未过去,则什么也不做。
例如
long lastCall = 0;
void doSomething()
{
long now = secondsSinceEpoch();
if (lastCall == 0 || now-lastCall > 5)
{
// Do stuff
// lastCall = now
}
}
答案 1 :(得分:-1)
我不知道这是否可以帮助您。
private long timeMillions = 0;
public void doSomething(){
// if within 5 seconds
if(System.currentTimeMillis() < timeMillions + 5 * 1000){
//retrun or do some thing else
return;
}else{
// after 5 seconds
timeMillions = System.currentTimeMillis();
System.out.println("do something");
}
}