1

假设我使用 iphone 应用程序和带有某种集中式数据库的 web 应用程序构建了一个 todo 应用程序。如果我在没有互联网连接的情况下在我的 iPhone 上添加待办事项,我显然无法在网络应用程序上看到它们。由于离线时无法发出 API 请求,因此数据不在数据库中。

为了防止离线时添加的任务丢失,您是否将它们存储在本地,然后在建立互联网连接时,然后调用 API 来创建这些任务并将它们添加到数据库中?

这在 iOS 中究竟是如何做到的?我只是在本地构建对象吗?你怎样才能让它知道特定的任务不在数据库中,并且应该调用 API 来完成它们?

4

1 回答 1

1

您需要将所有数据存储在本地数据库中,然后检查互联网连接是否可用,如果互联网可用,通过 API 调用将数据发送到网络,然后如果您收到来自的响应,则从本地数据库中删除数据服务器。这种方式在从服务器获得响应后删除您本地数据库的每一行。

对于此实现,您可以拥有:

-  create a database on mobile
-  Register User on Server, After registering client should get a response from server and a timestamp.
-  Save timestamp and register a Pending Intent for 12 / 24 hrs to Start a Background Service that would Sync the Data to Server.
-  In case of no availability of Internet while Service wants to Sync data, we should have a Broadcast Receiver that check for internet connectivity, and as soon as Internet is available it would silently Start Service (Sync Service) in background and send data to Server.
-  Server would again send a response with timestamp, on receiving timestamp we delete our local Database, and repeat step 3. This cycle will keep on repeating.

我认为这应该达到目的。如果如何实现这一点,请发表评论。

于 2012-07-28T19:38:44.613 回答