对于我的Blackberry应用程序,我使用带有进度条的启动屏幕。我正在使用计时器填充进度条,在进度条完成后,我需要导航到另一个屏幕。
我这样检查,'我'是时间,从0增加到100。
timer.cancel();
if(i>=99)
UiApplication.getUiApplication().pushScreen(new TipCalculatorScreen());
此代码无效。
对于进度条,我使用的代码如下:
private GaugeField percentGauge;
percentGauge = new GaugeField(null, 0, 100,50, GaugeField.PERCENT);
timer=new Timer();
timer.scheduleAtFixedRate(new TimerTask(){
int i=0;
public void run() {
percentGauge.setValue(i);
i++;
if(i>=99)
{
timer.cancel();
//for page navigating i am given like this here screen is not navigating getting error
UiApplication.getUiApplication().pushScreen(new nextscreen());
}
}
}, 100,100);
答案 0 :(得分:1)
您需要在UI线程上更改UI。 TimerTask正在自己的线程上执行。而不是
UiApplication.getUiApplication().pushScreen(new nextscreen());
你应该使用
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
UiApplication.getUiApplication()..pushScreen(new nextscreen());
}
});
您的仪表控件的更新可能需要相同的处理。