java - 客户端应用程序中本地存储管理和数据持久性的最佳实践是什么?

标签 java android ios objective-c couchbase

<分区>

我正在为 Android 和 iOS 平台的医疗网络服务开发 REST 客户端。在阅读了不同的文章和博客文章后,我了解到我应该始终保留数据以提高应用程序速度、用户体验、节省网络资源并允许用户离线使用某些数据。我决定使用基于 Couchbase Lite 的本地存储。但这个问题是数据存储独立的。我对实现它的最佳方式很感兴趣。目前我结束了下一个工作流程:

  1. 当用户首次登录时,我会获取部分近期数据(在我的例子中是患者的健康记录和一些报告。)
  2. 然后在后台用其余数据填充我的存储
  3. 在推送通知上同步我的数据,以始终存储最后的服务器数据副本。

    但我有几个问题:本地存储的正常大小是多少?可能有一段时间客户端数据会增加很多——在这种情况下,我会从设备中删除最旧的数据,以便不超过某个预定义的限制?假设它是 50 - 100 Mb。或者我应该允许用户控制这个并给他一些接口(interface)来删除报告、记录?我描述的工作流程是否正确?或者从技术和用户体验的角度来看可能做错了什么?

最佳答案

你应该看看下载一个索引(资源的名称和位置,而不是实际的资源数据),它列出了所有可用的资源。显示列表,并为每个项目指明它是否在本地可用。选择后,显示(需要时下载)。允许编辑以删除资源的本地副本(使用全选按钮)。

至于存储大小,这取决于设备。应用程序存储他们需要的数据。问题是用户愿意为您在本地保存多少数据。给他们选择权。您还可以有一个设置屏幕,当大小超过 XX Mb 时,它会提供删除旧资源(最近未访问过)的功能。

关于java - 客户端应用程序中本地存储管理和数据持久性的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20287752/

相关文章:

ios - 如何快速验证地理围栏位置到当前位置?

java - 如何设置hadoop环境变量

java - 尝试将来自 Web 服务的图像存储在 Postgresql 数据库中

android - 使用搜索栏将数据从主 Activity 传递到 SurfaceView 线程

android - 在内部存储器中创建文件夹以保存文件并在以后检索它们

iphone - 减少 ABBannerView 大小以获得宽度 = 300 而不是 320

ios - 如何让 subview 在展开UITableViewCell时保持相同的大小

java - 在 if/else block 中声明变量

java - PowerMock 无法正确模拟

android - Jetpack Compose 滚动条