C# 如何在Windows应用商店应用程序中保存我的状态?
我在将状态保存到localsettings时遇到了一点问题。除了有人使用alt+f4关闭我的应用程序并在10秒前打开它(10秒后应用程序处于挂起状态并保存数据)之外,一切正常。(技术xaml/c#) 我将数据保存在暂停事件C# 如何在Windows应用商店应用程序中保存我的状态?,c#,windows-8,windows-runtime,winrt-xaml,state,C#,Windows 8,Windows Runtime,Winrt Xaml,State,我在将状态保存到localsettings时遇到了一点问题。除了有人使用alt+f4关闭我的应用程序并在10秒前打开它(10秒后应用程序处于挂起状态并保存数据)之外,一切正常。(技术xaml/c#) 我将数据保存在暂停事件中 我在事件OnLaunched中加载数据,如下所示: if (args.PreviousExecutionState == ApplicationExecutionState.Terminated || args.PreviousExecutionState == Appli
中
我在事件OnLaunched
中加载数据,如下所示:
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated ||
args.PreviousExecutionState == ApplicationExecutionState.ClosedByUser)
{
// save data
}
如何处理这种情况?我知道我可以保存我的状态,每次它被改变,但我认为这不是一个好主意,在我的应用程序。
谢谢你的帮助 当您在10秒前关闭并启动应用程序时,会创建另一个实例,而前一个实例不会在暂停时运行事件(这很奇怪,因为这意味着类似此事件的异步操作可以在没有警告的情况下结束或永远不会启动)。我认为这很烦人,但是为什么你的用户会这样做呢?大多数情况下,用户“重新启动”应用程序是因为应用程序崩溃或被卡住而无法返回主页。你应该尽量避免这些情况,这样的想法很少会发生
然而,这种情况也可能发生,因为用户忘记做什么,想再次启动应用程序。为了防止丢失用户数据,每当我有机会时,我都会保存最重要的数据,并只保存其余的OnSuspending
method您需要考虑哪些数据在丢失时会让您的用户感到不安。
我认为微软应该找到一种更好的保存应用程序状态的方法。我搜索了很多关于这个问题的信息,没有找到解释,所以现在我将继续做我上面所说的。我希望你提出的这个问题能帮助我澄清这个,在我看来,奇怪的案例
onLaunched :
CoreWindow.GetForCurrentThread().Activated += App_Activated;
and event:
void App_Activated(CoreWindow sender, WindowActivatedEventArgs args)
{
if (args.WindowActivationState == CoreWindowActivationState.Deactivated)
{
//save Data
}
}
加载数据时,请删除:
if(args.PreviousExecutionState==ApplicationExecutionState.Terminated | | args.PreviousExecutionState==ApplicationExecutionState.Closed
ByUser)`。
它起作用了