java - Android客户端-Java服务器应用程序

最近几天,我一直在Android上开发客户端服务器应用程序。
我选择使用Java套接字通信,因为我对此很熟悉,并且在当时似乎比较容易。
我想为我提供帮助,因为我认为这还不足以实现我的目标。

当时,作为一个基本的演示应用程序,我正在使用AsyncTask连接到我的Java Server并交换文本消息以安排约会。这是最终目标,这是一个可用于预订约会的Android应用程序。

我已经读过AsyncTask不应长时间使用,并且我真的希望服务器在约会时间在下一个小时之内或其他时间向客户端发送消息。

我可以使用AsyncTask吗?我想不是。根据我在网上阅读的内容,AsyncTask会冻结UI直到完成为止。(我没有得到它,因为它是一个线程,但无论如何我还是这样)。

您会推荐我使用套接字和AsyncTask之外的其他工具吗?

在此先感谢,ilias

最佳答案

客户端等待服务器消息的问题是众所周知的。没错,在等待响应时保持连接打开不是一个好主意。

经典的解决方案是轮询。选择一个时间间隔,连接到服务器,请询问结果是否已经可用。如果是,得到它然后离开。如果否,请离开并稍后再试。
当然,这不是完美的解决方案,但是许多应用程序都是通过这种方式实现的。

对于感兴趣的读者:
看看Web Sockets。这个想法是保持一个轻量级的连接,该连接使服务器能够在没有客户端明确请求的情况下发送数据。但这似乎仍在进行中。