当我们停用WP应用程序时,它可以被逻辑删除并稍后由操作系统终止。我需要在进程终止时将一些未保存的应用程序数据保存到持久存储中,但不要在此之前保存。显然,Deactivated事件不能用于此目的,因为当应用程序移动到后台时会立即引发它; Close事件也不是我们需要的事件,因为当操作系统终止应用程序进程时它不会引发。是否有特殊的Windows Phone应用程序事件,例如Application_Terminated?
答案 0 :(得分:1)
问题是操作系统只有在严重的资源压力下才会对您的应用程序进行逻辑删除。当时唤醒应用程序并运行应用程序代码是不切实际的,因为它可能会冒任何当前前景的风险。所有现代移动操作系统(包括Android,IOS)都存在此限制。这只是在电池/资源友好环境中运行的成本。
话虽如此,听起来你的支持商店并没有消除用户"保存的数据之间的歧义。和用户可以完成事务之前缓存的数据。建立这个想法会很有用。可以想象一下互联网上一些更聪明的网站现在的运作方式。您可以在输入数据的过程中导航,当您返回时,网站会向您显示部分填充的表单。该网站了解到您没有完成"但它尊重您提供了一些您需要完成的信息"。
我在这里说的是,通过了解和适应用户可能使用该应用的方式,可以轻松解决问题。将您的应用程序视为一个网站(至少在此上下文中)可以帮助您了解所有内容。对于这个冗长的回答感到抱歉。我希望它有所帮助:)
答案 1 :(得分:0)
没有这样的事件。您应该将状态保存在Deactivated上,这样如果从内存中删除应用程序(逻辑删除),您可以在重新激活时重新设置自己。如果您的问题是确定是否需要在Activated上恢复状态,请查看ActivatedEventArgs.IsApplicationInstancePreserved标志(http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.shell.activatedeventargs.isapplicationinstancepreserved(v=vs.105).aspx)。此标志会告诉您应用是否已被逻辑删除。如果不是,您可以在下次停用时丢弃旧状态或覆盖它。