Android监听来自服务器套接字的消息

我想创build一个Android应用程序,通过套接字与本地服务器通信。 通信使用JSON传递简单的命令和string中的数据。 客户端应该不断监听来自服务器的传入消息,并在收到新数据时更新用户界面。

所以我创build了一个networking服务,这是一个在后台运行的绑定服务。 从我的活动绑定到服务,并接收服务对象的实例。 服务对象包含允许我发送命令到服务器的实例方法。

我的问题是,我如何使我的服务不断侦听来自服务器的消息,而不会阻止发送消息到服务器的可能性?

private Socket socket = null; private PrintWriter out = null; private BufferedReader in = null; private Listener listener; private String host = "10.0.1.4"; private int port = 3000; public NetworkService() { try { if (socket == null) { socket = new Socket(this.host, this.port); out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); } if(listener == null) { listener = new Listener(); Thread thread = new Thread(listener); thread.start(); } } catch (Exception e) { // ... } } } public class Listener implements Runnable { @Override public void run() { try { String line = null; while((line = in.readLine()) != null) { // Do something. Never gets here } } catch (Exception e) { // ... } } } 

Solutions Collecting From Web of "Android监听来自服务器套接字的消息"