【问题标题】:Navigate one screen to another screen based on time period in BlackBerry app根据 BlackBerry 应用程序中的时间段将一个屏幕导航到另一个屏幕
【发布时间】:2011-06-29 22:44:06
【问题描述】:

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

我是这样检查的,其中“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);

【问题讨论】:

  • 你能分享一下这里面有什么不好的地方吗?

标签: blackberry java-me


【解决方案1】:

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

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

你应该使用

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

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

【讨论】:

  • 很高兴听到 :) 在 stackoverflow 上,您可以将答案标记为已接受,这样其他人就知道这是一个很好的答案(我因此而受到称赞)。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2019-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多