【发布时间】:2013-02-12 20:50:35
【问题描述】:
我有这个代码:
@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方法中以某种方式再次调用线程吗?或者它是否在持续运行并且当套接字不是 null 时它会“做其他事情”?
我尝试再次调用 run 函数,但出现 NullPointerException。当我在communicateListener 中创建一个新线程时它工作得很好,但我不想每次单击按钮时都创建一个新线程。
谢谢
【问题讨论】:
标签: java android multithreading