这是我的代码示例
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变量。谁能告诉我这是怎么回事?
最佳答案
textStatus可能为null。检查以确保R.id.editText1是您在XML文件中使用的实际ID。
另外,任何可能长时间运行的任务都不应在UI线程上执行。您的应用程序性能将非常糟糕。请参阅Painless Threading文章,并尝试将服务器通信移至其他线程。或者考虑改为使用IntentService。我更喜欢IntentService。
关于android - Android中的SocketS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7830797/