Android - 有效地从远程数据库中检索数据

时间:2015-04-18 11:15:47

标签: php android sql-server json

我正在为医生设计的Android项目中工作。医生需要在第一次打开应用程序时进行身份验证。

此身份验证过程通过HTTPS连接完成,使用服务器端的PHP代码将JSON代码返回给应用程序,让它知道连接是否成功,如果是这种情况,它也会返回医生的病人名单。让我展示一段JSON代码,以便在成功登录时返回:

JSON-example-code

显然,如果登录失败,那么" listOfPatients"属性不会携带任何数据。在服务器生成此JSON代码之后,应用程序将使用JSON Parser简单地读取它。

现在想象一下,医生不仅仅有3名患者,而是100名患者。并且每个患者都没有3个属性("年龄","电话","吸烟者")但是其中数十个适当地嵌套在需要的地方。然后,我们将有一个稍大(但可能不太复杂)的JSON代码来阅读。

在这个项目中,我正在设计客户端代码(即Android应用程序),而服务器代码是由其他人编写的。 他问我如何编写服务器代码,以便于安装" Android客户端 - 服务器"互动并实现最佳,最顺畅的用户体验。

我回答(这是我的答案的真正简短版本; 不关心服务器端代码安全性,因为它不是此问题的目标):< / p>

  1. 创建允许进行POSTS查询的 login.php 。我的应用程序将发送&#34;用户&#34;和#34;密码&#34;并且服务器会将其与数据库进行比较。
  2. 服务器将根据医生的登录请求成功生成适当的JSON代码。
  3. Android应用程序只需解析此JSON并以列表视图的形式显示给用户,依此类推(我在此问题中向医生显示此数据的方式无关紧要。)
  4. 我想知道两件事:

    1. 知道JSON将包含数百个属性,这段代码的效率如何?有没有更好的方法来实现此功能?你会怎么做?
    2. 绝大多数这些属性&#39;值会每天更改(例如,&#34; bodyTemperature&#34;或&#34; bloodPressure&#34;)。此外,还有重要的通知&#34;,患者会在紧急情况下通知医生。我不认为一遍又一遍地完成整个过程(&#34;服务器创建JSON ==&gt;客户端读取JSON ==&gt;客户端显示JSON&#34;)是非常有效的分钟,小时,日复一日。必须有更好的方法(可能是本地存储?然后我必须分辨哪些属性每年只读一次(&#34;年龄&#34;),每月一次(&#34;电话&#34) ;),每天一次(&#34; bodyTemperature&#34;)或每30分钟一次(&#34; importantNotifications&#34;);我怎么能区分出我需要从JSON中读取哪些值?每次会议?)

1 个答案:

答案 0 :(得分:0)

现在您可能会使用GSON来解析来自服务器的响应。您也可以定义默认值并告诉服务器不要返回任何等于默认值的内容,例如smoker - 默认 NO (最小化要传输的数据量)。你极有可能在ListView或RecyclerView中显示病人。谷歌有点如何实现懒惰的加载器,这意味着你告诉服务器只返回一些结果,而不是全部,当用户滚动到结束时,你问服务器如果有的话给你更多。 在Android上使用缓存也是将一些不必要的请求保存到服务器的好方法。您可以定义缓存有效的时间,例如5分钟,如果要重新填充列表,请检查它是否仍然有效。但是你应该总是留下手动刷新选项,SwipeToRefresh是一种非常简单的方法。 希望别人可以拥有更多东西,因为我对此也感兴趣。