java - 离线同步 Android 应用的通用架构

标签 java android serialization anonymous-inner-class

我正在构建一个类似 POS 的 Android 应用程序,即使数据连接暂时丢失,它也需要工作。

想法是如果数据连接可用,立即向服务器报告所有事务。如果没有,将其本地存储在 SQLite 中,稍后在连接可用时同步。

第一个计划是将单个事务保存在与服务器上维护的相同的通用数据库结构中,但是由于服务器上有许多不同类型的事务和关系,这将有效地从数据库中复制整个数据库结构手机本身的服务器。

另一种方法是仅保存用于通知服务器更改的最终 HTTP 请求。这种方法的优点是它只需要一个表,只存储 URL、请求内容、方法等。但是可能会有一些调用需要在响应上执行代码,这些调用将作为匿名内部类实现.这种方法的唯一问题似乎是序列化这些匿名内部类,以便它们可以从数据库加载并在(可能的)手机重启后执行。

实现这个的最佳方法是什么?选项A还是选项B?如果选项 B,是否真的有可能序列化和反序列化匿名内部类(在这里有效地用作闭包)?

最佳答案

对于选项 A,您可能希望考虑 CouchDB 来处理设备/服务器复制。

Couchdb on Android

关于java - 离线同步 Android 应用的通用架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018563/

相关文章:

java - 比较给定期间内的日期

java - 我们如何在HandlerInterceptorAdapter中处理异常?

android - TextView.onDraw 导致死循环

java - 自动并行化友好编程实践

c# - 为所有继承自基类型的类设置自定义 MongoDB BsonSerializer

java - OpenNLP 分类器输出

android - LogCat 可以倒序打印吗?

Android 设置选项卡从右到左顺序或改变方向

iOS 序列化/反序列化无法正常工作

java - REST API URL 模式设计