我有這樣的代碼:我如何重用一個線程?線程什麼時候關閉?
@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中創建一個新線程時它工作得很好,但我不想每次單擊按鈕時都創建一個新線程。
謝謝