根据BlackBerry应用程序中的时间段将一个屏幕导航到另一个屏幕

时间:2010-05-20 11:15:23

标签: blackberry java-me

对于我的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);

1 个答案:

答案 0 :(得分:1)

您需要在UI线程上更改UI。 TimerTask正在自己的线程上执行。而不是

UiApplication.getUiApplication().pushScreen(new nextscreen());

你应该使用

UiApplication.getUiApplication().invokeLater(new Runnable() {
    public void run() {
        UiApplication.getUiApplication()..pushScreen(new nextscreen());
    }
});

您的仪表控件的更新可能需要相同的处理。