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

Java J2ME lcdui:我可以在工作线程中操作GUI吗?,java,multithreading,user-interface,java-me,mobile,Java,Multithreading,User Interface,Java Me,Mobile,我只是从J2ME和lcdui开始,我正在看一些从工作线程调用lcdui对象方法的示例代码 根据我使用桌面GUI工具包的经验,这通常是禁止的-lcdui不同吗?这样做真的可以吗 (我在谷歌上搜索了这个问题的答案,但没有找到任何答案——在一些官方文档中链接到一个定义性的答案就太好了!)LCDUI有点滑稽,你能做什么和不能做什么通常取决于实现情况。我为BlackBerry编写的应用程序在从后台线程访问UI对象时没有问题(除了您自己创建的常见线程问题),但我很确定其他一些平台会禁止这样做 如果您担心这一

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

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


(我在谷歌上搜索了这个问题的答案,但没有找到任何答案——在一些官方文档中链接到一个定义性的答案就太好了!)

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


如果您担心这一点,或者这会导致您出现问题,那么您可能需要考虑使用
javax.microedition.lcdui.Display.callSerially(Runnable)
。这将在UI线程中执行给定的
Runnable
对象(如果LCDUI中有这样的对象),并使用其他UI事件和绘制操作将其序列化。您可以在中了解更多信息。

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


如果您担心这一点,或者这会导致您出现问题,那么您可能需要考虑使用
javax.microedition.lcdui.Display.callSerially(Runnable)
。这将在UI线程中执行给定的
Runnable
对象(如果LCDUI中有这样的对象),并使用其他UI事件和绘制操作将其序列化。您可以在中了解更多信息。

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

有一段时间,我在寻找类似的信息,但也找不到让谷歌获得好结果的妙语


祝你好运

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

有一段时间,我在寻找类似的信息,但也找不到让谷歌获得好结果的妙语


祝你好运

感谢链接到文档;我同意我不一定在所有平台上都信任它;我同意,我不一定在所有平台上都信任它。