【问题标题】:Mobile application that deals with a weak internet connection处理弱互联网连接的移动应用程序
【发布时间】:2017-09-15 18:32:12
【问题描述】:

我想构建一个需要在互联网连接较弱或没有任何互联网连接的情况下工作的 Android 应用程序。

此应用程序的主要功能是将照片和其他重要信息等数据保存并发送到服务器。我的问题是关于这个系统在离线模式下的实现,以及在处理弱互联网连接时如何在服务器和客户端之间建立有效的同步。

谢谢

【问题讨论】:

  • 那么...有什么问题。我们不会为您设计应用程序。
  • 我不想让你设计应用程序。我想要一些有用的信息来解决这个问题,因为我找不到可以有效实施的东西
  • 也许使用一些队列来执行同步任务? github.com/yigit/android-priority-jobqueue
  • 我使用 Parse-Server。我保存数据(使用 saveInBackground 或 SaveEventually)。然后我将它固定到后台(缓存数据)
  • @Dorin 不,你是。你来这里没有做任何工作,问我们如何根据 1 段描述做一件极其复杂的事情。你还没有准备好在这里提问。

标签: android offline offline-caching data-synchronization


【解决方案1】:

我希望这会有所帮助。可能不是最好的解决方案,但由于缺乏想法或解决方案(正如你提到的那样),我提出了这个。
我在一个应用程序上有类似的东西。我通过 web 服务将数据发送到我的主数据库,所以我创建了一个包含 3 个字段的表 (SQLite):
1) 服务功能(文本)
2) 服务参数(文本)
3) 已处理(Int,1 或 0,默认 0)

由于我的移动用户不需要知道记录是否已保存,因此在他们执行的每个事件中,我都会保存我需要调用的 web 服务方法及其参数。有了这个,我有一个队列等待发送到我的服务器(MySQL 数据库,Web 服务在 C# 上)
我在后台每分钟运行一个 IntentService 处理该“队列”。我获取所有待处理的记录(Processed = 0),使用其参数执行 webservice 方法,如果检测到错误,我会中断循环并记录问题,如果一切正常,我将 Processed 字段更新为 1。

这个逻辑没有问题,在大约 150 台设备上没有数据丢失或任何东西,我从简单的记录发送到图像数据以存储在数据库中(我们不讨论将 BLOB 数据存储在 Db 或 FS 上的做法)
我希望这能让您大致了解您需要在解决方案中实施什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多