Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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
Java 有没有办法在Android应用程序中持续更新方法?_Java_Android - Fatal编程技术网

Java 有没有办法在Android应用程序中持续更新方法?

Java 有没有办法在Android应用程序中持续更新方法?,java,android,Java,Android,我正在尝试创建一个应用程序,您可以在其中输入一系列按钮作为密码。当您按下第一个按钮时,一个方法将跟踪经过的时间,并在5秒时存储按钮按下数据 long recordingTime = 0; boolean isRecording = false; // start timer for total recording time if(!isRecording) { isRecording = true; recordingTime =

我正在尝试创建一个应用程序,您可以在其中输入一系列按钮作为密码。当您按下第一个按钮时,一个方法将跟踪经过的时间,并在5秒时存储按钮按下数据

    long recordingTime = 0;
    boolean isRecording = false;

    // start timer for total recording time
    if(!isRecording) {
        isRecording = true;
        recordingTime = System.currentTimeMillis();
    }

    public void update() {
    long currentTime = 0;
    // get current time
    currentTime = System.currentTimeMillis();

    // check if timer is over 5 seconds
    if(currentTime - recordingTime >= 5000) {
        isRecording = false;

        Context context = getApplicationContext();
        CharSequence text = "Max password time reached.";
        int duration = Toast.LENGTH_SHORT;

        Toast toast = Toast.makeText(context, text, duration);
        toast.show();

    }
}

有几种方法可以做到这一点,但这里有一种简单的方法可以做到:

view.postDelayed(new Runnable() {
            @Override
            public void run() {
                //store data here
            }
        }, 5000);

你在寻找递归吗?你不需要不断地更新任何东西。您需要安排一个方法在5秒后启动才能进行递归工作吗?我不认为会这样,否则效率会很低。我怎样才能在5秒钟后找到一个方法来启动呢?下面是一个我认为你在寻找的修改后的示例:那么,在按下按钮后,我怎样才能让它运行呢?我希望计时器仅在第一次按下按钮后启动。您可以在onClickListener中设置一个标志,使其仅运行一次。类似于:如果(!hasFirstButtonBeenPressed){/*则运行代码*/}