Проблема BlackBerry с просмотром - PullRequest
0 голосов
/ 07 февраля 2011

Я разработал приложение для доступа к сети через мобильное приложение, используя j2me для мобильных телефонов Nokia, но когда я попытался запустить это приложение на устройствах Blackberry, у меня возникла проблема, ни один сайт не хочет открываться, он просто завис так что кто-нибудь может мне помочь, пожалуйста, потому что я не мог найти никакого решения для этого это строки кода, которые я использую в приложении

эту строку я использую, чтобы читать что-то из Интернета

hc = (HttpConnection) Connector.open(url); dis = hc.openDataInputStream(); 
int dataleft = dis.available(); 
for (int j = 0; j < dataleft; j++) {
     buffer.append((char) dis.read()); 
}
dis.close(); 
hc.close();

и эта строка для открытия сайта

this.platformRequest("http://stackoverflow.com/questions");

1 Ответ

0 голосов
/ 07 февраля 2011

Вы, вероятно, выполняете этот код (который имеет некоторые проблемы ... не зависит от available (), чтобы быть точным, вы должны просто вызвать read (), пока он не вернет -1) в потоке события, большой нет-нет на BlackBerry. Приложение, вероятно, пытается запросить у пользователя разрешение на выполнение HTTP-запроса, но, поскольку четный поток заблокирован, оно не может этого сделать. В ветке событий BlackBerry есть довольно хорошее описание того, что делать и чего не делать:

http://www.thinkingblackberry.com/archives/182

Это также упоминается в документации API для HttpConnection:

Этот интерфейс выполняет блокировку операций ввода и вывода. Приложение будет заблокировано, если реализация этого интерфейса откроет соединение из основного потока событий. Предотвратите блокировку приложения, открыв соединение из потока, который отделен от потока основного события.

Документы API находятся по адресу:

http://www.blackberry.com/developers/docs/4.5.0api/javax/microedition/io/HttpConnection.html

...