从服务器向客户端发送数据(Android App)

时间:2014-07-30 23:23:33

标签: php android client-server

所以我正在开发一个简单的服务器/客户端Android应用程序,其中Android应用程序拍照,然后将其发送到服务器。

之后,服务器有一些后端代码,它将对图像进行某种处理并生成新图像。

我目前所有工作都在这里工作。

我现在需要的是一种让服务器让客户端(Android应用程序)知道图像准备就绪的方法。

有人能指出我正确的方法吗?我在想一些简单的事情,就像新图像是否存在的布尔值一样。我的问题是处理可能需要一两秒钟,所以如果我只是简单地进行GET,那么新图像很可能尚未就绪/不存在。

最终我想在Android应用中显示新处理的图像。我目前的方法只是在做GET之前等待1秒或2秒,但这似乎是一种不好的方法。

2 个答案:

答案 0 :(得分:1)

是的,你这样做的方式完全没用。

你需要在那里做一些RestFul服务。当客户端请求某些特定API时,您需要将其保留在那里,进行图像处理并回复相同的http请求。

RestFul API

关于加载器效果,当您在服务器端实现restful api时,在客户端中很容易实现。在Android中,您可以使用AsyncTask,它使用onPreExecute和onPostExecute回调来处理一些后台操作。因此,您可以在onPreExecute中启动加载器动画,并在onPostExecute方法中完成并替换新图像。

您还可以查看此讨论。 SOF Question

答案 1 :(得分:0)

只有几种方式,真的......如果服务器进程超过几秒钟(客户端上的计时器),只需让客户端“回调”。这是有效的,但不是最优雅的处理方式。

我解决长延迟服务器响应问题的首选方法是通过手机的“推送”通知。这样,手机就可以继续进行其他任务。但是,一旦服务器准备就绪,它就会发送通知 - 手机接收通知,然后“回家”接收等待的有效负载。自从BlackBerry在2002年推出MDS以来,我一直在构建这样的移动系统。在我看来,这是一种优雅的方法。亚马逊,苹果和谷歌......他们都对这种基础设施有所了解,这种基础设施模仿了RIM的先驱。在做出任何决定之前先检查一下,因为每个决定都有自己的限制,利弊,成本等等。