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

根据BlackBerry应用程序中的时间段将一个屏幕导航到另一个屏幕,blackberry,java-me,Blackberry,Java Me,对于我的黑莓应用程序,我使用带有进度条的启动屏幕。我正在使用计时器填充进度条,进度条完成后,我需要导航到另一个屏幕 我这样检查,其中“I”是时间,从0增加到100 timer.cancel(); if(i>=99) UiApplication.getUiApplication().pushScreen(new TipCalculatorScreen()); 此代码不起作用 对于进度条,我使用如下代码: private GaugeField percentGauge;

对于我的黑莓应用程序,我使用带有进度条的启动屏幕。我正在使用计时器填充进度条,进度条完成后,我需要导航到另一个屏幕

我这样检查,其中“I”是时间,从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);

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

UiApplication.getUiApplication().pushScreen(new nextscreen());
你应该使用

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

您的仪表控制更新可能需要同样的处理。

您能分享一下这方面的不足之处吗?很高兴听到:)在stackoverflow上,您可以将一个答案标记为已接受,以便其他人知道这是一个好答案(我为此获得了积分)。祝你好运