J2ME lcdui:我可以在工作线程中操作我的GUI吗?

时间:2009-10-17 22:09:25

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

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

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

(我已经用Google搜索了这个问题但没有找到任何答案 - 在某些官方文档中找到明确答案的链接会很棒!)

2 个答案:

答案 0 :(得分:3)

LCDUI有点滑稽,你可以做什么,不能做什么往往取决于实施。我为BlackBerry编写的应用程序从后台线程访问UI对象没有问题(除了你自己创建的常见线程问题),但我很确定其他一些平台会禁止这个。

如果您对此感到担心,或者它导致您遇到问题,您可能需要查看使用javax.microedition.lcdui.Display.callSerially(Runnable)。这将在UI线程中执行给定的Runnable对象(如果在LCDUI中存在这样的事物)并将其与其他UI事件和绘制操作序列化。您可以在J2ME API docs

中详细了解相关信息

答案 1 :(得分:1)

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

有一段时间,我一直在寻找类似的信息,但也无法找到提供Google以获得良好结果的神奇措辞。

祝你好运!