【问题标题】:J2ME lcdui: Can I manipulate my GUI in a worker thread?J2ME lcdui:我可以在工作线程中操作我的 GUI 吗?
【发布时间】:2009-10-17 22:09:25
【问题描述】:

我刚开始使用 J2ME 和 lcdui,我正在查看一些示例代码,这些代码从工作线程调用 lcdui 对象上的方法。

根据我使用桌面 GUI 工具包的经验,这通常是被禁止的 - lcdui 有什么不同吗?这样做真的可以吗?

(我在谷歌上搜索过这个问题的答案,但没有找到任何东西——在一些官方文档中提供一个明确答案的链接会非常好!)

【问题讨论】:

    标签: java multithreading user-interface java-me mobile


    【解决方案1】:

    LCDUI 有点有趣,你能做什么和不能做什么通常取决于实现。我已经为 BlackBerry 编写了从后台线程访问 UI 对象没有问题的应用程序(除了您自己创建的常见线程问题),但我很确定其他一些平台会禁止这样做。

    如果您对此感到担忧,或者它给您带来了问题,您可能需要考虑使用javax.microedition.lcdui.Display.callSerially(Runnable)。这会在 UI 线程中执行给定的Runnable 对象(如果 LCDUI 中有这样的事情),并将其与其他 UI 事件和绘制操作一起序列化。您可以在J2ME API docs 中了解更多信息。

    【讨论】:

      【解决方案2】:

      根据this documentation 的并发部分,使用 javax.microedition.lcdui 类,线程安全应该是 UI 类的目标之一。正如 Rory 所指出的,完全有可能不同的供应商将其作为“建议”而不是规则来实施。

      有一次,我在寻找类似的信息,但也找不到能提供给 Google 以获得良好结果的神奇措辞。

      祝你好运!

      【讨论】:

      • 感谢文档链接;我同意我不一定会在所有平台上都信任它。
      猜你喜欢
      • 1970-01-01
      • 2011-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      相关资源
      最近更新 更多