在 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)
是做什么的?
我在 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)
是做什么的?