Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android/java中正确引入延迟_Java_Android - Fatal编程技术网

在android/java中正确引入延迟

在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

我想在我的项目中使用delay设置一个布尔变量。 所以基本上我有一个布尔变量,当用户触摸一个按钮时,它被设置为true。两秒钟后,布尔变量应该设置回false。 所以我的问题是如何引入2秒的延迟

我有以下代码,这是不工作的-

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,这实际上对我不起作用。因为我不知道要导入哪个处理程序。有多种选择,但没有一种适合我。还有其他想法吗?