0

ノキアの携帯電話用のj2meを使用してモバイルアプリケーションを介してWebにアクセスするアプリケーションを開発しましたが、このアプリケーションをブラックベリーデバイスで実行しようとすると、問題が発生しました。 plscos私はそれに対する解決策を見つけることができませんでしたこれらのr私がアプリケーションで使用しているコードの行

私がウェブから何かを読むために使用しているこの行

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");
4

1 に答える 1

0

あなたはおそらくそのコードを実行しています(これにはいくつかの問題があります...正確にはavailable()に依存しないでください。-1が返されるまでread()を呼び出す必要があります)。 -BlackBerryではありません。アプリは、HTTPリクエストを行うための許可をユーザーに求めようとしている可能性がありますが、偶数スレッドがブロックされているため、それを行うことはできません。ここに、BlackBerryイベントスレッドで何をすべきか、何をすべきでないかについてのかなり良い説明があります。

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

HttpConnectionのAPIドキュメントにも記載されています。

このインターフェースは、ブロッキング入力および出力操作を実行します。このインターフェイスの実装がメインイベントスレッド内から接続を開くと、アプリケーションはロックされます。メインイベントスレッドとは別のスレッド内から接続を開くことにより、アプリケーションがロックされないようにします。

APIドキュメントは次の場所にあります。

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

于 2011-02-07T13:26:25.973 に答える