在 android 中每次单击后进度条 运行 更快

ProgressBar running faster after each onclick in android

我在 android 中被这个应用程序卡住了。在我的应用程序中,我正在尝试实现一个进度条,它显示特定秒数的计时器。单击按钮时,计时器应刷新并再次从 progressBar 中的 0 开始。为此,我正在使用线程。

问题是,当我单击按钮时,线程会调用计时器函数,并且每次线程都变得越来越快。我无法解决它,也不知道后台发生了什么。 这是我的 Timerfunction

代码
public void setTimer()
    {
        prog=0;
        progress.setProgress(prog);
        if(flag){
        t= new Thread(new Runnable(){
            public void run()
            {
              while(prog<100)
              {
                prog+=1;
                handle.post(new Runnable(){
                    public void run()
                    {
                        progress.setProgress(prog);
                        if(prog==progress.getMax()&& flag){
                         call_fun();
                        }
                    }
                });
                try
                {
                  Thread.sleep(time);
                }
                catch(InterruptedException e)
                {
                    Log.i("Error", null);
                }
              }
            }
        });
        t.start(); 
        }
    }

我在另一个名为 RandomGeneration 的函数中调用了这个函数。如果单击该按钮,则会调用随机生成,并且每次都会激活设置的计时器。但是每次点击后进度条都快 运行 了。它在同一特定时间不断 运行。例如,如果它在第一次点击时运行 3 秒,则在第二次点击时运行 运行 2 秒,并且速度会大大加快。

任何人都可以尝试找出这段代码中发生了什么。 提前致谢..!!

据我所知,每次单击按钮时都会创建一个新线程。 也许尝试检查 t 是否已经是 运行,如果是,则更新将进度设置为 0 的逻辑? 另外,if(flag) 是做什么的?