如何在Windows应用商店应用中保存我的状态?

Mis*_*tyK 5 c# state windows-8 windows-runtime winrt-xaml

我将状态保存到localsettings时遇到了一些问题.一切正常,除非有人使用alt+ 关闭我的应用程序f4并在10秒之前打开它(在应用程序处于暂停状态并保存数据10秒之后).(技术xaml/c#)

我保存了我的数据OnSuspending.

我在这样的事件中加载我的数据OnLaunched:

if (args.PreviousExecutionState == ApplicationExecutionState.Terminated ||
args.PreviousExecutionState == ApplicationExecutionState.ClosedByUser)
{
  // save data
}
Run Code Online (Sandbox Code Playgroud)

如何处理这种情况?我知道我可以在每次更改时保存我的状态,但我认为在我的应用程序中这不是一个好主意.感谢帮助 !

let*_*ves 2

当您在 10 秒之前关闭并启动应用程序时,会创建它的另一个实例,并且前一个实例不会运行OnSuspending事件(这很奇怪,因为这意味着像此事件这样的异步操作可以在没有警告我们的情况下结束或永远不会启动)。我认为这很烦人,但是为什么你的用户会这样做呢?大多数时候,用户“重新启动”您的应用程序是因为应用程序崩溃了或者他被卡住并且无法返回主页。您应该尽力防止这些情况发生,但这种情况很少会发生。

但是,这种情况也可能发生,因为用户忘记执行某些操作并想要再次启动应用程序。为了防止丢失用户数据,我一有机会就保存最重要的数据,并仅保存其余数据OnSuspending您需要考虑哪些数据丢失后会让您的用户感到不安。

我认为微软应该找到一种更好的方法来保存应用程序状态。我搜索了很多关于这个问题的信息,但没有找到解释,所以现在我将继续按照上面所说的进行。我希望你提出的这个问题能够帮助我澄清这个在我看来很奇怪的情况。