【发布时间】:2015-01-16 17:48:23
【问题描述】:
我在 android 中被这个应用程序卡住了。在我的应用程序中,我正在尝试实现一个进度条,它显示特定秒数的计时器。单击按钮时,计时器应刷新并再次从进度条中的 0 开始。为此,我正在使用 Thread。
问题是,当我单击按钮时,线程调用计时器函数并且每次线程变得越来越快。我无法解决它,也不知道背景发生了什么。 这是我的 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 秒并且变得更快。
任何人都可以尝试找出这段代码中发生了什么。 提前谢谢..!!
【问题讨论】:
标签: android multithreading timer android-progressbar thread-sleep