Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:当数据存储在在线数据库中时,离线存储数据的最佳实践_Android_Offline_Data Storage - Fatal编程技术网

Android:当数据存储在在线数据库中时,离线存储数据的最佳实践

Android:当数据存储在在线数据库中时,离线存储数据的最佳实践,android,offline,data-storage,Android,Offline,Data Storage,我想在android上做一个基本的待办程序,让我的脚湿透。我有一个RESTAPI和在线数据库,当存在连接时,它可以处理基本的CRUD 然而,我使用过的大多数任务应用程序都允许在没有连接的情况下创建任务 对于这样的事情,最好的做法是什么 应用程序是否通常在本地存储用户所有数据的副本,以便在不存在连接时可以访问 看起来我使用的应用程序(astrid tasks)在访问我的所有任务/历史记录时都没有问题,无论连接如何 如果是这种情况,就远程数据的主键而言,如何处理同步?一种解决方案是在应用程序中使用本

我想在android上做一个基本的待办程序,让我的脚湿透。我有一个RESTAPI和在线数据库,当存在连接时,它可以处理基本的CRUD

然而,我使用过的大多数任务应用程序都允许在没有连接的情况下创建任务

对于这样的事情,最好的做法是什么

应用程序是否通常在本地存储用户所有数据的副本,以便在不存在连接时可以访问

看起来我使用的应用程序(astrid tasks)在访问我的所有任务/历史记录时都没有问题,无论连接如何


如果是这种情况,就远程数据的主键而言,如何处理同步?

一种解决方案是在应用程序中使用本地数据库。没有internet连接时,将数据存储在此数据库中


现在让您的应用程序监听网络更改。当设备连接到网络时,您可以将缓存的数据从本地数据库上传到服务器,而无需用户交互。

您有一些编码,比如说,每个数据更改一个请求将以xml或json的原子编码方式执行。创建一个作为连接父级的基类,并使用它向远程数据库发送数据更新。如果不存在连接,则将整个命令存储到文件或sqlite中。您可以根据文件大小、日期等创建多个文件(如果使用文件方法)。如果您需要按顺序更新数据库,请创建一些规则,说明如何选择最早的记录