SocketS в Android - PullRequest
       2

SocketS в Android

1 голос
/ 20 октября 2011

Вот пример моего кода

     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(), на экране отобразится ТЕКСТ.

Итак, сокет client = serverSocket.accept(); как-то влияет на переменную textStatus.

Может кто-нибудь сказать мне, что не так?

1 Ответ

1 голос
/ 20 октября 2011

textStatus, вероятно, имеет значение null. Убедитесь, что R.id.editText1 является фактическим идентификатором, который вы используете в своем XML-файле.

Кроме того, любая потенциально долго выполняемая задача не должна выполняться в потоке пользовательского интерфейса. Вы будете иметь очень плохую производительность приложения. Пожалуйста, ознакомьтесь со статьей Painless Threading и попробуйте перевести связь с сервером в другой поток. Или рассмотрите возможность использования IntentService . Я предпочитаю IntentService.

...