我正在编写一个UWP应用程序来学习新的UWP平台。我的应用程序的主页是用户可以编辑的列表(经典命令,如添加/编辑/删除+重新排序)。我需要在用户离开应用程序时根据用户的选择将这些项目保存到本地存储或OneDrive,并在用户返回应用程序时恢复这些项目。
显然,我们可以做到这一点的最佳时刻是应用程序的主屏幕被激活或停用。问题是:什么事件最适合我的目的?
在了解了UWP平台的一些基础知识后,我发现VS2015 UWP空白应用程序模板提供的OnSuspending / OnLaunched事件不是保存列表数据的适当事件。什么事件呢? Page的OnNavigatedFrom / OnNavigatedTo我曾经在WP8 Silverlight应用程序中使用过吗?或者我可以根据自己的需求使用新的UWP平台中的其他活动吗?
答案 0 :(得分:1)
之前我做过类似的事。
在我的场景中,我需要将数据保存在OnDrive中或保存在本地文件夹(存储文件夹)中
我有同样的问题,我解决了我的问题:
我使用了在后台运行的计时器,每2分钟或5分钟自动保存所有更改。
我添加了使用按钮手动保存数据的可能性,以防用户想要手动保存数据。
使用这种技术,如果用户更改某些属性或添加其他项目,我会阻止每次都连接到OneDrive或将数据保存在本地存储中。
为了获取数据,我总是使用OnNavigatedTo来加载所有项目。
用于在用户关闭或离开应用程序后保存所有数据我喜欢使用Backgroundtask将本地存储中所有上次保存的数据与Ondrive同步(实际上我只是替换数据)
最好的问候
答案 1 :(得分:0)
你提到以下内容:
我发现VS2015 UWP Blank App模板提供的OnSuspending / OnLaunched事件不是保存列表数据的适当事件。
有什么事情让你想知道OnSuspending / OnLaunched是不是正确处理这个问题的方法?
我总结一下:
要进行保存,请使用Application.Suspending。如果需要,请使用ExtendedExecution。
要加载,请使用Application.OnLaunched。检测PreviousExecutionState并在需要时恢复。
要进行测试,请使用"Suspend and shutdown":