1

ここに私のコードのサンプルがあります

     TextView textStatus = (TextView) findViewById(R.id.editText1);
     ServerSocket serverSocket = new ServerSocket(SERVERPORT);
     .
     .
     Socket client = serverSocket.accept();
     .
     .
     textStatus.append("TEXT");
     client.close();

これにより、Android アプリケーションが強制終了されます。textStatus.append を削除すると、機能します。繰り返しますが、 と を削除するSocket client = ...client.close()、画面に TEXT が表示されます。

したがって、ソケットclient = serverSocket.accept();は何らかの方法で textStatus 変数に影響を与えています。

誰が何が間違っているのか教えてもらえますか?

4

1 に答える 1

1

textStatus はおそらく null です。R.id.editText1 が、XML ファイルで使用している実際の ID であることを確認してください。

また、長時間実行される可能性のあるタスクを UI スレッドで実行しないでください。アプリのパフォーマンスが非常に悪くなります。痛みのないスレッド化の記事を参照して、サーバー通信を別のスレッドに移動してみてください。または、代わりにIntentServiceの使用を検討してください。私は IntentService を好みます。

于 2011-10-20T03:28:51.203 に答える