在后台运行线程

时间:2014-01-18 01:17:26

标签: java android multithreading sockets background

我环顾四周,发现了不同的做法,所有这些似乎都会产生错误。这是我想要运行的。它连接到已经运行的服务器。 关于如何使其工作或改变以使其有效的任何想法?

String serverAddress = MainActivity.serverAddress;
int port = MainActivity.newport;
Socket socket = new Socket(serverAddress, port);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);           
String getName=MainActivity.name;

// Process all messages from server, according to the protocol.
while (true) {
    String line = in.readLine();
    if (line.startsWith("SUBMITNAME")) {
        out.println(getName);
    }
    else if (line.startsWith("NAMEACCEPTED")) {
        //textField.setEditable(true);
    }
    else if (line.startsWith("MESSAGE")) {
        mt.append(line.substring(8) + "\n");
    }
}

1 个答案:

答案 0 :(得分:0)

什么工作?是代码本身还是在运行这个(true)循环作为线程时需要帮助?

while(true)循环将占用主java线程,因此您无法在while循环之外执行任何其他操作。所以首先我建议通过实现runnable或者创建一个匿名类来启动线程,将while循环内的操作转换为线程。

有很多例子:Java - creating a new thread

希望这有帮助!如果我错误地解释你的问题,请给我回复。