2011-02-07 3 views
0

Я разработал приложение, которое обращается к Интернету через мобильное приложение, используя j2me для мобильных телефонов nokia, но когда я попытался запустить это приложение на устройствах Blackberry, у меня возникла проблема с ним, ни один веб-сайт не хочет открываться, он просто замирает так может кто-нибудь помочь мне PLS, потому что я не мог найти решения для его этих г строки коды, которые я использую в приложенииПроблема с 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"); 

ответ

0

Возможно, вы используете этот код (который имеет некоторые проблемы ... не зависит от того, насколько доступным() является точным, вам нужно просто вызвать read(), пока он не вернет -1) в событие нить, которая является большой не-no на 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

+0

так я думаю, что проблема может быть решена, если я решить эту проблему нити – Hesham

+0

я попробовал все нити решения, но, кажется, безнадежно, так бы у PLZ сказать мне, как я могу решить проблему с потоком ?? – Hesham

+0

Это действительно сложно сказать, не видя никакого кода. Но вам обязательно нужно убедиться, что вы вызываете Connector.open() в отдельном потоке. Вы также должны быть уверены в том, что хотите использовать исключения и т. Д., Чтобы убедиться, что код работает так, как вы ожидаете. –

Смежные вопросы