在android/java中正确引入延迟
我想在我的项目中使用delay设置一个布尔变量。 所以基本上我有一个布尔变量,当用户触摸一个按钮时,它被设置为true。两秒钟后,布尔变量应该设置回false。 所以我的问题是如何引入2秒的延迟 我有以下代码,这是不工作的-在android/java中正确引入延迟,java,android,Java,Android,我想在我的项目中使用delay设置一个布尔变量。 所以基本上我有一个布尔变量,当用户触摸一个按钮时,它被设置为true。两秒钟后,布尔变量应该设置回false。 所以我的问题是如何引入2秒的延迟 我有以下代码,这是不工作的- boolean userTouch; public void buttonTouched(){//This gets called when user touches the button setUserTouch(true); try{ Thread.sle
boolean userTouch;
public void buttonTouched(){//This gets called when user touches the button
setUserTouch(true);
try{
Thread.sleep(2000);
}catch(Exception e){
e.printStackTrace;
}
setUserTouch(false);
}
在另一个方法中,我调用getUserTouch()
method来查看用户是否在过去2秒钟内触摸了按钮。但该方法总是设置为false。这从来都不是真的。
我的代码有问题吗?如果设置用户触摸(true)代码>方法是否在try块内?
还有没有其他方法可以实现我的目标?i、 e.我可以引入2秒延迟的任何其他方法。我正在试倒计时。但是我不知道其他方法。使用异步任务管理器怎么样。您可以在AsyncTask的doInBackGround方法中使用thread.sleep命令,然后使用publishProgress方法将usertouch
布尔变量设置回false
还可以尝试以下代码
setUserTouched(true);
long DELAY = 2000;
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// code in here will get executed after DELAY variable
setUserTouched(false);
}
}, DELAY);
可能重复的问题:嗨,迪帕克·卡库,Handler没有为我工作。我不知道该导入哪个。有多种选择。我都试过了,但没有一个奏效。我还尝试导入android.os.*。这也不起作用。还有其他想法吗?使用buttonTouched()方法中的处理程序代码。并导入android.os.Handler;嘿,我试着导入android.os.Handler代码>。那不行。处理程序保持红色,当我将鼠标悬停在其上时,android studio表示无法解析符号“Handler”。我还清理了项目并重建了它。但在尝试添加导入时仍然存在相同的错误。Android studio建议为处理程序(如java.util.logging)导入大量内容。但他们不工作,这是不可能的。处理器是Android SDK不可或缺的一部分。我不明白为什么导入它会有问题。尝试重新启动android studio。android.os.Handler就是你要找的那个。嗨,hyper,这实际上对我不起作用。因为我不知道要导入哪个处理程序。有多种选择,但没有一种适合我。还有其他想法吗?