2013-03-19 43 views
1

我想了解BlackBerry中的線程概念。BlackBerry多線程

在Android中,我們有異步任務或處理程序進行通信。黑莓手機有類似的東西嗎?兩個線程如何交流?如何將數據從後臺線程傳遞到UI線程?

+0

請參閱[本黑莓文檔](http://docs.blackberry.com/en/developers/deliverables/29251/Event_thread_1593335_11.jsp),也許[this one,too](http://supportforums.blackberry.com/t5/Java-Development/Sample-quot-Please-Wait-quot-screen-part-1/ta-p/493808)和我的[回答關於將「AsyncTask移植到黑莓Java」 /stackoverflow.com/a/13010227/119114) – Nate 2013-03-19 08:10:58

回答

1

併發並不是一件小事。製作線程安全解決方案確實很困難。在Blackberry Java中,情況更糟糕,因爲只有JavaME線程API可用,這意味着您不能使用所有Java SE高級類(如執行程序,鎖,集合等)。

我的建議不是嘗試移植Android的AsyncTask或任何其他高級併發相關的類,因爲很可能你會犯錯誤(除非你熟悉併發編程)。我自己會盡可能避免它。相反,保持併發代碼儘可能簡單和小巧。大多數情況下,您只需從工作線程刷新GUI。這可以通過UiApplication.invokeLaterUiApplication.invokeAndWait輕鬆完成,而且根本不需要編寫併發代碼。

如果您想了解更多關於併發性的知識,我將以Oracle的this tutorial開頭。它針對JavaSE,但幾乎上半年對於JavaME也很有用。如果你想學習更高級的併發編程,this book是必讀的。

+0

大多數真實的BB應用程序不會將自己限制在原始Java SE核心。 – seand 2013-03-25 05:27:22