我正在努力在Android上提供一个数据存储(一个不使用SQLite的数据存储),从我们的Java库的单应用程序桌面版本开始。理想的解决方案是:
使用我的客户端 - 服务器架构背景,我最初的尝试是使用Service
,其他应用程序可以使用bindService
和其他呼叫进行通信。结果在上面有质量#1(以及某种程度上的#3),但我不清楚何时将所有这些数据写回文件系统,特别是因为事实证明onDestroy()
方法是不能保证被调用,特别是在机器关闭期间。使用警报定期保存数据也不是一个好的解决方案,因为它可能会在进程被终止时导致未提交的更改。
现在,我正在考虑使用ContentProvider
,我认为这也是哲学上最好的方式。但问题#2仍然存在:如何保证在系统关闭时不会保留未提交的更改,同时不使用诸如在每个操作上写入文件系统等天真技术而牺牲性能?我想知道原生SQLite实现如何实现它?
请建议正确的方法来做这件事。这不应该像我发现的那样难::)。
感谢。