Android应用程序,可在在线和离线模式下工作



我是安卓系统的新手,我制作了一个应用程序,可以提取数据并将数据发布到服务器,在在线模式下运行良好。但我想让它也能在离线模式下工作,当没有互联网连接或网络故障时。当net可用时,它还应该对服务器数据库进行更改(更新)。我做了很多R&D,但没有得到有用的信息。

请有人指导我一些有用的步骤,示例代码(如果可能)或任何链接,使应用程序处于离线模式。

  • 您需要定义应用程序的在线和离线两种模式
  • 监视应用程序中的网络连接事件以确定脱机/联机模式,您需要为此编写BroadcastReciever
  • 在联机模式下,连接到服务器并交换此时需要执行的任何数据
  • 同时,在脱机模式下,如果需要,持久存储数据

您所问的问题实际上非常复杂。

我花了整整一年的时间试图解决这个问题,并在SyncIt项目中发表了我的作品,该项目位于http://forbesmyester.github.io/SyncIt/。

有:

  • 本地版本控制系统https://github.com/forbesmyester/SyncIt
  • 服务器组件https://github.com/forbesmyester/syncit-server
  • 连接监控组件https://github.com/forbesmyester/SyncItControl
  • 还有一个基本的引导项目,它会给你一个超级基本的待办事项列表式项目,你可以把它作为你项目的基础。。。https://github.com/forbesmyester/SyncItBootstrap

我建议您从阅读本地版本控制组件开始,然后转到连接监控组件。

使用SQLite数据库。当没有互联网时,将数据保存在数据库中。然后在互联网恢复时和服务器同步数据。

http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/

您可以在android应用程序中使用SQLite数据库。离线时,您可以将所有内容保存在本地数据库中,当应用程序联机时,您就可以将本地数据库和服务器数据库同步。

为了在android应用程序中创建SQLite本地数据库,您可以在github 中检查以下示例代码(示例项目)

https://bitbucket.org/kavi707/grocery_items_app/src

干杯。。。

这里没有互联网就无法获取数据。但使用旧数据是可能的。一旦您从互联网下载数据,请将其存储到数据库中。这里大多数人建议SQLite database。我的建议是使用任何人数据库(SQLite or SQLCipher)。之后,在上传您的数据之前,只需将其插入数据库并从数据库中发布即可。因为一旦发生网络故障,数据就不会丢失。

Broadcast Receiver:

此广播接收器用于通知您网络更改。一旦网络连接,写下你的邮政编码。也许这里也有可能出现网络故障。但数据仍在数据库中,所以不会丢失。

相关内容

  • 没有找到相关文章

最新更新