如何解决黑莓试图创建一个倒数计时器,并且在文本更新时抛出异常
|| 我正在尝试创建一个倒数计时器。我使用的是给定为timertask
的Timer
对象。我有一个名为mTimerDisplay
的标签字段,它是我称为cGlobols
的类的静态成员。
在计时器调用的run
方法上,可以很好地更改标签的颜色:
cGlobals.mTimerDisplay.setBackground(
BackgroundFactory.createSolidBackground(0xff0000));
当我添加以下行时:
cGlobals.mTimerDisplay.setText(\"Hi\");
它抛出一个IllegalStateException
:
我查了一下,说
表示已调用方法
在非法或不适当的时间。
换句话说,Java环境
或Java应用程序不在
所请求的适当状态
操作。,
这是否意味着我无法在线程上执行此操作,但是如果是这样,为什么我可以更改颜色?如果我无法在计时器线程上执行此操作,是否还有另一种方法可以执行此操作?
解决方法
工作线程无法获得事件线程才能更新UI。将setText()调用包装在一个同步块中,并使用Application.getEventLock()获得此锁。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。