【问题标题】:How to make android application work online and offline both with server side? and how to sync the server side data?如何使android应用程序在服务器端在线和离线工作?以及如何同步服务器端数据?
【发布时间】:2017-09-15 09:13:25
【问题描述】:

任何人都知道在线和离线工作 Android 应用程序的最佳方法吗?另外,如何管理服务器端数据与本地数据库的同步?

【问题讨论】:

  • 看到这是一个有趣的问题,因为这是每个客户端应用程序和后端开发人员必须解决的问题,并且需要在他们的 API 和应用程序设计中弄清楚。 这个问题太宽泛了,这取决于你的数据库在客户端和服务器端是什么,你选择使用什么技术,你的项目限制是什么等等。
  • 我会建议,“请人来做这件事”。
  • 第一个问题的答案写在你的第二个问题online as well as offline 中,只要用户上网就同步本地数据库。第二个问题的答案是服务和 AsyncTask 的组合
  • @EpicPandaForce 同样的反应,可惜它太宽泛了。
  • 问题是,我已经在线连接了我的应用程序。但是对于离线功能,我们可以处理多少?因为我无法控制数据连接和用户。

标签: android realm retrofit mobile-development


【解决方案1】:

完成离线应用程序的步骤:

1) 您的 UI 始终显示来自 db 的数据并主动侦听任何 db 更改。

2) 每当用户与您的应用程序交互时,您直接更新数据库并标记数据库中的相关字段以与您的服务器同步。 (请注意,您的 UI 在侦听数据库更改时会立即更新)

3) 您的网络层侦听您的数据库中标记的字段更改并尝试与服务器同步。

4) 当服务器端更改成功时,您取消标记现在已成功同步的数据库字段。

5) 如果您正在实施向下同步(即:服务器有更新的数据并希望客户端进行相应更新),您可以向设备发送推送通知并进行网络调用以获取最新数据,具体取决于根据通知消息。

为了让这个工作顺利进行,您需要一个反应式数据库。 Realm 数据库就是我用过的一个例子。

【讨论】:

  • 如果我只是处理一些小数据,这很容易。如果数据很大怎么办?我需要将每个数据与更新的数据同步。
  • 我需要更多上下文来回答这个问题,假设您正在制作新闻应用程序,您可以每天(例如)早上一次从服务器获取所有数据,并显示来自 db 的数据
猜你喜欢
  • 2012-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
相关资源
最近更新 更多