当我们停用WP应用程序时,它可以被逻辑删除并在以后被操作系统终止。当进程终止时,我需要将一些未保存的应用程序数据保存到持久性存储中,但在此之前不会。显然,Deactivated事件不能用于此目的,因为当应用程序移动到后台时立即引发该事件; Close事件也不是我们需要的事件,因为当应用程序进程被操作系统终止时它不会引发。是否有特殊的Windows Phone应用程序事件,如Application_Terminated?WinPhone应用程序事件对应用程序进程终止作出反应
回答
问题是,当操作系统处于严重的资源压力下时,它只会将您的应用程序废除。当时,唤醒应用程序并运行应用程序代码是不现实的,因为它可能会危及当前的前景。这种限制存在于所有现代移动操作系统(包括Android,IOS)。这只是在电池/资源友好的环境中操作的成本。
话虽如此,听起来您的支持存储不会消除用户“保存”的数据和刚被缓存直到用户可以完成事务的数据之间的歧义。将这个想法建立起来会很有用。想想现在互联网上一些更智能的网站的工作方式。当您处于输入数据的中间时,您可以导航,当您返回网站时会显示部分填写的表单。该网站明白,你并没有“完成”,但它尊重你提供了一些你需要完成的信息。
我在这里说的是,通过理解和适应您的用户可能使用应用程序的方式,可以轻松解决问题。考虑你的应用程序就像一个网站(至少在这种情况下)可以帮助你理解事物。对于长期的回答,感到抱歉。我希望它可以帮助:)
有没有这样的事件。你应该将你的状态保存在Deactivated中,这样如果应用程序从内存中移除(墓碑式),你可以在重新激活时再次设置自己。如果您的问题是确定您是否需要恢复激活状态,请查看ActivatedEventArgs.IsApplicationInstancePreserved标志(http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.shell.activatedeventargs.isapplicationinstancepreserved(v=vs.105).aspx)。这个标志告诉你你的应用是否是墓碑式的。如果不是,则可以丢弃旧状态或在下一次停用时覆盖它。
我现在这样做,并使用IsApplicationInstancePreserved。我不希望将当前未保存的用户输入的数据保存在Deactivated事件中,因为在这种情况下,我们失去了取消激活应用程序时所需的确定/取消功能。 – TecMan
- 1. iOS4:应用程序终止事件?
- 2. 应用程序终止事件WP8.1
- 3. Windows Mobile - 捕获应用程序/进程终止事件
- 4. Python程序对事件做出反应
- 5. 应用程序不终止
- 6. 终止应用程序
- 7. EnterpriseLibrary.Logging终止应用程序
- 8. 应用程序终止
- 9. 应用程序安装程序异常进程终止(android)
- 10. 从VS10应用程序中查找/终止进程(VC6应用程序)?
- 11. 退出时终止应用程序
- 12. 如何在Android应用程序退出后终止进程?
- 13. 线程应用程序意外终止
- 14. “异常代码:C0000005 ACCESS_VIOLATION”进行中应用程序,应用程序已终止
- 15. Intellij Idea调试应用程序步进失败并终止应用程序
- 16. 添加操作来终止应用程序事件
- 17. Android从终端终止应用程序
- 18. 应用程序池,工作进程和Web应用程序?
- 19. 应用程序池vs应用程序域vs工作进程
- 20. 检测应用程序终止与反应原生
- 21. 应用程序退出进程退出事件
- 22. 使用DateTime终止应用程序?
- 23. 停止应用程序,而退出应用程序
- 24. ASP.NET应用程序停止事件?
- 25. Ipad应用程序:如何对roatation作出反应?
- 26. 多线程的Delphi 7应用程序 - 应用程序终止的问题
- 27. Clickonce应用程序已停止为WPF应用程序工作
- 28. 用户强行终止应用程序:注册此事件
- 29. 在应用程序内对Android应用程序进行评分
- 30. 应用程序事件
建议您的应用程序以增量方式保存其重要数据。另一个有风险的方法是使用'PhoneApplicationService'的'State':[MSDN](http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff817009%28v=vs.105%29.aspx) –