2

我想知道是否有人可以为我指出这个问题的正确方向。一点介绍:

在我们维护的应用程序中,我们只是重写了网络层以删除对 OS 4 的支持。我们正在使用ConnectionFactoryOS 5 中提供的清理程序。请注意,我们遇到的问题仅与设备有关,与模拟器无关。

有两种方式或应用程序具有连接性,一个轮询特定 url 并存储数据的数据线程,以及一个“通用 Web 视图”(a BrowserField)。

到目前为止,数据线程连接似乎没有问题,它根据传输类型正确构建 url 并正确下载数据。在BrowserField我们有一个不同的问题。当我们使用 URL 打开时,有一条 OS 6 曲线会导致问题(但没有其他 OS 6 设备),BrowserField它有可能会显示“无法选择正确的传输描述符”消息 - 最常见的罪魁祸首是 WAP2。

我想我们有点困惑,黑莓似乎没有像我们希望的那样处理传输描述符的选择。有人有什么建议吗?

由于它的长度,我在 gist 上发布了我们的连接实用程序类:https ://gist.github.com/3490101

数据线程使用的最常见的连接形式是getUrlAsString(String etag)函数,它执行 GET 并缓存基于 etag/url 的响应。

要为我们构建 URL,BrowserField我们使用该buildURLTransport(String url)函数,它获取 url 上的连接,确定传输信息,并返回构建的 URL。

TL;DR:我们似乎无法调试的一个奇怪之处BrowserField,我们希望有一套新的眼睛:我们认为上面发布的buildURLTransport(String url)函数要点有问题。

提前感谢一吨。

4

1 回答 1

4

小心你的代码,因为getUrlAsString它不是线程安全的。我不明白为什么您ConnectionFactory有时会提及为什么不提及其他人。

我也不明白你为什么需要方法buildUrlTransport。为什么不与for as hereBrowserFieldConfig一起使用。ConnectionFactoryBrowserField

所以我会实例化一个ConnectionFactory,用你的特定参数配置它并在任何地方使用它。如果偏好发生变化,我会重新创建ConnectionFactory和更新BrowserFieldConfig. 当然,这段代码应该是线程安全的。

还要更加一致 - 有时您使用快速连接检查,有时您不使用。

于 2012-08-27T20:07:45.223 回答