黑莓尝试创建倒计时器,并在文本更新时抛出异常

时间:2011-05-24 20:55:06

标签: blackberry timer

我正在尝试创建一个倒计时器。我使用了Timer的{​​{1}}对象。我有一个名为timertask的标签字段,它是我调用mTimerDisplay的类的静态成员。

在计时器调用的cGlobols方法上,可以更改标签的颜色:

run

当我添加以下行时:

cGlobals.mTimerDisplay.setBackground(
    BackgroundFactory.createSolidBackground(0xff0000));

它抛出一个cGlobals.mTimerDisplay.setText("Hi"); : 我看了这个,然后说了

  

表示已调用方法   在非法或不适当的时间。   换句话说,Java环境   或Java应用程序不在   适合所要求的州   操作中,

这是否意味着我无法在线程上执行此操作,但如果是这样,为什么我可以更改颜色?如果我不能在计时器线程上执行此操作,还有另一种方法吗?

1 个答案:

答案 0 :(得分:3)

如果没有获取事件线程,工作线程无法更新UI。将setText()调用包装在synchronized块中,并使用Application.getEventLock()来实现此锁定。