Java 黑莓线程模型
我已经阅读了很多评论,其中顺便提到黑莓线程模型偏离了Java标准,可能会引起问题,但谷歌搜索并没有告诉我这到底意味着什么 我一直在为BlackBerry开发一个相当大的商业应用程序,尽管我以前没有Java多线程应用程序的经验,但除了我们自己造成的问题外,我没有遇到任何我们可以归咎于线程的问题Java 黑莓线程模型,java,multithreading,blackberry,java-me,Java,Multithreading,Blackberry,Java Me,我已经阅读了很多评论,其中顺便提到黑莓线程模型偏离了Java标准,可能会引起问题,但谷歌搜索并没有告诉我这到底意味着什么 我一直在为BlackBerry开发一个相当大的商业应用程序,尽管我以前没有Java多线程应用程序的经验,但除了我们自己造成的问题外,我没有遇到任何我们可以归咎于线程的问题 有人能确切地描述一下黑莓线程模型的不同之处吗?作为一名开发人员,我应该如何考虑这一点?显然,关于这个主题的任何链接都会很好。我能想到的唯一问题是在对的回答中进行了讨论。我在黑莓论坛上发现了两个怪癖: Vec
有人能确切地描述一下黑莓线程模型的不同之处吗?作为一名开发人员,我应该如何考虑这一点?显然,关于这个主题的任何链接都会很好。我能想到的唯一问题是在对的回答中进行了讨论。我在黑莓论坛上发现了两个怪癖:
LabelField.setText(“foo”)之类的函数代码>您需要执行以下操作:
UiApplication.getUiApplication().invokeLater(new Runnable(){
public void run(){
myLabelField.setText("foo");
myLabelField.setDirty(true);
}
});
很简单吧
2.网络
网络操作不应在UI线程中运行。要做这样的事情:
new Thread(){
public void run(){
HttpConnection hc =
(HttpConnection)Connector.open("http://www.stackoverflow.com");
}
}.start();
这两个主要原则非常重要。您应该始终注意在哪个线程中操作。区别不在于线程模型,而在于使用它们的方式。正如最初的帖子所说,您不能使用ui线程进行网络连接,也不能使用网络连接更新ui
在这个问题上,你所谓的桌面java和黑莓java之间有很多不同。。。相信我 这更像是一个与任何平台相关的通用线程问题,我指的是BlackBerry JVM中线程的具体实现。