我已经阅读了很多评论,提到BlackBerry线程模型偏离了
Java标准,可能会导致问题,但是没有数量的谷歌搜索引起了我的意思.
@H_301_7@解决方法
我一直在为BlackBerry开发一个相当大的业务应用程序,尽管我以前从来没有Java多线程应用程序的经验,但是还没有遇到任何问题,除了我们自己造成的.
有人可以准确地描述BlackBerry线程模型是如何不同的,以及我作为开发人员应该如何考虑?显然这个话题的任何链接也是很棒的.
1.UI
用户界面操作总是需要在UI线程中运行.执行像LabelField.setText(“foo”)这样的函数;你需要做:
用户界面操作总是需要在UI线程中运行.执行像LabelField.setText(“foo”)这样的函数;你需要做:
UiApplication.getUiApplication().invokeLater(new Runnable(){ public void run(){ myLabelField.setText("foo"); myLabelField.setDirty(true); } });
很容易啊?
2.Network
网络操作不应该在UI线程中运行.做这样的事情做:
new Thread(){ public void run(){ HttpConnection hc = (HttpConnection)Connector.open("http://www.stackoverflow.com"); } }.start();
这两个主要原则是非常重要的.您应该始终关心您正在操作的线程.