如果前台应用程序终止,如何通知后台任务?

时间:2015-02-21 14:54:27

标签: silverlight windows-runtime windows-phone-8.1 background-task

使用Windows phone 8.1 silverlight 后台任务是WinRT任务。

我面临的问题是我正在运行后台任务,我希望后台任务在前台App关闭或终止时退出。 我知道在关闭前台App时我可以使用Application_closing方法写入隔离存储以与后台任务进行通信。 但真正的问题是当前台应用程序从暂停状态进入终止状态时如何处理事件。或者即使后台任务可以查询前台App到OS的状态。 谢谢你。

1 个答案:

答案 0 :(得分:1)

不幸的是,无法获取有关您的应用从暂停状态进入终止状态的信息。这就是为什么MSDN上的大多数文章明确表示您必须在应用程序暂停之前保存任何会话相关数据的原因。

  

您应始终在暂停事件中保存用户信息和应用数据,因为Windows在终止应用之前不会通知应用。这很重要,因为终止可能在各种情况下发生,例如当Windows需要释放内存或设备失去(电池)电源时。

https://msdn.microsoft.com/en-us/magazine/jj660301.aspx

可以做的是实现某种ping机制,你的foregound应用程序会不断地将时间戳写入隔离存储。如果这些 ping超出预定义的时间戳,您可以假设您的应用已终止并退出后台任务。