Android的/套接字 – 如何从主UI线程发送信息到套接字线程?

我一直在通过论坛阅读过去一天,我似乎无法find一个答案,这将有助于解决我的问题。

我想创build一个Android套接字/游戏客户端,其中:

  1. 连接到服务器上的一个新的套接字在一个单独的线程从UI(我想保持打开)
  2. 在套接字上侦听来自服务器的消息,并使用处理程序将其发送到UI线程。
  3. 从主UI线程获取信息(即用户input,获取文本视图,button点击),然后将信息发送到服务器。
  4. 继续收听/发送其余的活动。

我在实施#3方面遇到很多困难。 最初连接到服务器的套接字是在它自己的线程中,我想保持打开无限期。 从主UI线程获取信息的最佳方式是什么,以便我可以使用该线程和套接字将信息发送到服务器?

我看到很多关于从后台线程返回信息到UI线程的post,但没有反过来。 有没有这样做的标准方式?

谢谢!

我find了一个解决scheme,在这里我使用了一个在UI线程和套接字线程之间共享的BlockingQueue。 UI线程使用queue.put(),当它想放置要发送到服务器的信息,并且套接字线程在queue.take()上等待获取信息并将其发送到服务器。