Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
blackberry试图创建倒计时,当文本更新时引发异常_Blackberry_Timer - Fatal编程技术网

blackberry试图创建倒计时,当文本更新时引发异常

blackberry试图创建倒计时,当文本更新时引发异常,blackberry,timer,Blackberry,Timer,我正在尝试创建一个倒计时计时器。我使用一个定时器对象,该对象被赋予一个定时器任务。我有一个名为mTimerDisplay的标签字段,它是我调用的类cGlobols的静态成员 在计时器调用的run方法上,可以更改标签的颜色: cGlobals.mTimerDisplay.setBackground( BackgroundFactory.createSolidBackground(0xff0000)); 当我添加以下行时: cGlobals.mTimerDisplay.setText("H

我正在尝试创建一个倒计时计时器。我使用一个
定时器
对象,该对象被赋予一个
定时器任务
。我有一个名为
mTimerDisplay
的标签字段,它是我调用的类
cGlobols
的静态成员

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

cGlobals.mTimerDisplay.setBackground(
    BackgroundFactory.createSolidBackground(0xff0000));
当我添加以下行时:

cGlobals.mTimerDisplay.setText("Hi");
它抛出一个非法状态异常: 我查了一下,上面写着

表示已调用某个方法 在非法或不适当的时间。 换句话说,Java环境 或者Java应用程序不在 所请求的文件的适当状态 操作


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

工作线程无法在未获得事件线程的情况下更新UI。将setText()调用包装在同步块中,并使用Application.getEventLock()获得此锁定。

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

在java中,style调用以大写字母开头的类名。另外,如果我理解你们班的意思,我认为你们把“globals”拼错了。因此,将类命名为“CGlobals”将是对约定的改进。在java中,样式要求类名称以大写字母开头。另外,如果我理解你们班的意思,我认为你们把“globals”拼错了。因此,将类命名为“CGlobals”将是对约定的改进。