我有这样的代码:我如何重用一个线程?线程什么时候关闭?
@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创建线程和线程建立连接。然后,在单击communicisteListener时,应用程序将从套接字读取或写入它。我不知道如何实现这一点。
我应该再次调用这个线程以某种方式在communicatorListener的onclick方法中?或者它连续运行,并且当socket不是null时它会“做其他的事情”?
我试着再次调用运行函数,但我得到了一个NullPointerException。当我在communicateListener中创建一个新线程时它工作得很好,但我不想每次单击按钮时都创建一个新线程。
谢谢