我有这个代码:
@Override
public void onClick(View v) {
if (!connected) {
serverIpAddress = serverIp.getText().toString();
if (!serverIpAddress.equals("")) {
Thread cThread = new Thread(new ClientThread());
cThread.start();
}
}
}
};
private OnClickListener communicateListener = new OnClickListener() {
@Override
public void onClick(View v) {
message = messageServer.getText().toString();
if (!serverIpAddress.equals("")) {
cThread.run();
//Thread cThread = new Thread(new ClientThread());
//cThread.start();
}
}
};
public class ClientThread implements Runnable {
public void run() {
if (socket==null)
connect to the server;
else
do smth else;
}
我想要的是 connectListener 来创建线程和线程来建立连接。然后,在单击communicateListener 时,应用程序将从套接字读取或写入。我不知道如何实现这一点。
我应该以某种方式在communicateListener的onclick方法中再次调用线程吗?或者它是否在持续运行并且当套接字不是空时它会“做其他事情”?
我尝试再次调用运行函数,但我得到了 NullPointerException。当我在communicateListener 中创建一个新线程时它工作得很好,但我不想每次单击按钮时都创建一个新线程。
谢谢