2

我正在开发一个用于Socket与我的应用服务器通信的 Android 应用(也使用 Java 编写ServerSocket)。

在我用来为客户端套接字制作的控制台程序中,我有一个循环继续运行并处理来自服务器的所有消息(一系列writeObject()readObject()往返的套接字对象流),直到某个消息出现(例如; bye) 终止循环。

由于控制台程序不涉及任何冻结问题,因此它在那里运行良好。但是我的应用程序有一个 Activity,它将根据来自服务器的消息更新 UI,如果我采用相同的方法,这显然会冻结。

那么,在不挂起游戏 UI 的情况下,处理这种不断处理从服务器接收到的消息的无限循环的理想方法是什么?

PS:我知道这无关紧要,但是我在 Android 应用程序和服务器之间以JSON格式交换数据。此外,将不胜感激解释该建议的示例。

谢谢。

4

2 回答 2

0

您可能希望在其自己的线程上为此使用服务,纯粹用于网络和数据处理。

然后,您可以将此服务绑定到您的主应用程序并从/向它发送接收消息。这是关于该主题的相当不错的教程:服务教程

于 2012-06-26T17:58:00.943 回答
0

推荐使用 of AsyncTaskAsyncTask主要用于进行此类服务器交互。此外,您可能希望使用Service它与服务器进行持续交互。

相关链接:

对于 AsyncTask - http://developer.android.com/reference/android/os/AsyncTask.html

对于服务 - http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

于 2012-06-26T17:49:10.353 回答