我的应用程序屏幕看起来与所附图像相似。我有多行,每行都有一个位图图像、标题和描述字段。所有信息都以 XML 的形式从我们的支持网络服务器获取。现在,我使用了观察者设计模式,它创建了一个单独的线程来通过 HTTP 连接到我的远程服务器、下载和解析 XML。XML 包括每行的图像、标题和描述的 URL。
到目前为止,我尝试了几种方法,
方法一:
- 创建了一个单独的方法 (drawRow()),它通过指定布局将内容放在一起。
- 然后,使用方法 downloadImage(),我尝试从 drawRow() 方法下载远程 URL。但它很糟糕,因为它使用相同的线程下载并且 UI 被阻止。
方法二:
在搜索上述问题时,我从coderholic.com 遇到了黑莓中的WebBitmapField。
然后,我使用 drawRow() 方法中的以下代码。据我了解 WebBitmapField,这里使用的是观察者设计模式,并且图像是通过 UI 线程以外的线程下载的。当我的行数有限(如 5 或 10)时,它可以正常工作。但是当我要绘制的行数更多时,它会引发TooManyThreads
异常,因为它会为每一行创建一个新线程。
我有这个链接taskworker-thread-blackberry,但不太清楚如何实现我的要求。
据我了解,在黑莓中,一个应用程序最多可以创建 16 个线程。所以,现在我相信了。我可能需要创建一个指定最大大小为 10 的线程池。
任何人都可以帮我理解并为我当前的问题实现黑莓的线程池吗?
另外,我感谢任何人给我任何其他适合我要求的最佳方法。
提前致谢。