Windows 8手机保存状态

时间:2015-03-30 16:22:15

标签: windows-phone-8

我对Windows 8手机很陌生,我不知道所有的生命周期方法以及什么叫做。

我的问题如下:我有一个页面从磁盘加载一些数据,当用户退出程序(或暂停)时,应保存数据。据我所知,Page没有OnSuspending方法只有someOnNavigatingFrom,但是当你退出程序时不会调用它们。所以我读到我应该在我的App.xaml.cs中使用OnSuspending,但是这个类没有这个数据,也不应该有它,也许只有OnSuspending。但我不知道如何从OnSuspending方法中获取我的页面中的数据。

2 个答案:

答案 0 :(得分:2)

OnSuspending事件非常脆弱,您不能指望它长时间运行并保存状态。但这取决于你需要多长时间才能保存。在关闭应用程序时按下主页键时甚至不会触发它。如果你真的想要一个简单的方法。只需注册后台任务即可。当您的应用程序处于后台时,状态可以保存,当您再次打开应用程序时,就会出现问题。

对于背景任务也有一定的限制,你不能做繁重的等等......这是你可以使用的链接。

https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977056.aspx

答案 1 :(得分:1)

为您的视图模型实现观察者模式(即pub / sub),以便在您的应用被暂停时订阅。

您的应用处理已暂停的事件。因此,请为您的视图模型发布一条消息,以便在应用程序的方法处理程序中响应已暂停的事件。

您可以使用EventAggregatorMessageBus(我写的)。