我的应用程序是一个使用cordova构建的Angular SPA,可在Android设备上运行。对于数据访问和缓存,我使用BreezeJS。这一切都悬而未决。
问题是将数据保存到设备,以便在用户关闭应用程序时,他们可以在离开时以相同的状态再次打开它。这涉及将数据从breeze缓存保存到设备并恢复它。
我挂上"暂停"用于检测应用程序何时关闭然后将数据保存到设备的事件。只要应用程序进入后台,就会发生这种情况。
document.addEventListener("pause", quitCordova, false);
问题是,如果用户最小化然后关闭,但立即打开应用程序(重复几次),那么我认为恢复发生在尚未完全保存但破坏数据的文件上。
在再次阅读文件之前,您似乎无法延迟确保保存已完成。
下面是如何保存数据:
var fs = CordovaPromiseFS({
persistent: true, // or false
storageSize: 90857600,
});
fs.write(myKey, myData).then(successFunction).catch(failureFunction);
CordovaPromiseFS是文件系统的包装器,详情请https://github.com/markmarijnissen/cordova-promise-fs