黑莓试图创建一个倒数计时器,并且在文本更新时抛出异常

问题描述

|| 我正在尝试创建一个倒数计时器。我使用的是给定为
timertask
Timer
对象。我有一个名为
mTimerDisplay
的标签字段,它是我称为
cGlobols
的类的静态成员。 在计时器调用的
run
方法上,可以很好地更改标签的颜色:
cGlobals.mTimerDisplay.setBackground(
    BackgroundFactory.createSolidBackground(0xff0000));
当我添加以下行时:
cGlobals.mTimerDisplay.setText(\"Hi\");
它抛出一个
IllegalStateException
: 我查了一下,说   表示已调用方法   在非法或不适当的时间。   换句话说,Java环境   或Java应用程序不在   所请求的适当状态   操作。, 这是否意味着我无法在线程上执行此操作,但是如果是这样,为什么我可以更改颜色?如果我无法在计时器线程上执行此操作,是否还有另一种方法可以执行此操作?     

解决方法

工作线程无法获得事件线程才能更新UI。将setText()调用包装在一个同步块中,并使用Application.getEventLock()获得此锁。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...