【发布时间】:2020-03-30 14:26:56
【问题描述】:
我想使用以下代码将进度条缓慢增加 20 秒
public void progressAnimator(){
final long period = 1000;
timer=new Timer();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//this repeats every 100 ms
if (counter<100){
runOnUiThread(new Runnable() {
@Override
public void run() {
loaderLabel.setText(String.valueOf(counter)+"%");
}
});
mProgress.setProgress(counter);
counter++;
}
else{
//closing the timer
timer.cancel();
Intent intent =new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
// close this activity
finish();
}
}
}, period);
}
我的问题是,这只会在 loaderLabel 上显示 0%,然后冻结而没有做任何事情。 我之前尝试过这段代码,但它只在 loaderLabel 上闪烁 100% 并填充进度条,然后进入下一个窗口。
public void progressAnimator(){
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
for( counter =1; counter<=100; counter ++) {
System.out.println(counter);
mProgress.setProgress(counter);
loaderLabel.setText(getResources().getString(R.string.loading) + " " + counter + " " + getResources().getString(R.string.percentSymbol));
if (counter == 100) {
Toast.makeText(SplashActivity.this, R.string.welcome, Toast.LENGTH_LONG).show();
Intent loadMain = new Intent(SplashActivity.this, MainActivity.class);
startActivity(loadMain);
finish();
}
}
}
}, 100);
}
如果我将延迟增加到 20,000,然后它会冻结为零,我可能做错了什么?
【问题讨论】:
标签: java android progress-bar android-bootstrap-widgets