使用 Windows phone 8.1 silverlight 后台任务是一个 WinRT 任务。
我面临的问题是我正在运行后台任务,并且我希望在前台应用程序关闭或终止时退出后台任务。我知道在关闭前台应用程序时,我可以使用 Application_closure 方法写入隔离存储以与后台任务进行通信。但真正的问题是,当前台应用程序从挂起状态变为终止状态时,我该如何处理该事件。或者即使后台任务可以向操作系统查询前台应用程序的状态。谢谢。
使用 Windows phone 8.1 silverlight 后台任务是一个 WinRT 任务。
我面临的问题是我正在运行后台任务,并且我希望在前台应用程序关闭或终止时退出后台任务。我知道在关闭前台应用程序时,我可以使用 Application_closure 方法写入隔离存储以与后台任务进行通信。但真正的问题是,当前台应用程序从挂起状态变为终止状态时,我该如何处理该事件。或者即使后台任务可以向操作系统查询前台应用程序的状态。谢谢。
不幸的是,无法获取有关您的应用程序从暂停状态进入终止状态的信息。这就是为什么 MSDN 上的大多数文章都明确指出您必须在暂停应用程序之前保存任何与会话相关的数据。
您应该始终将用户信息和应用数据保存在挂起事件中,因为 Windows 在终止应用之前不会通知它们。这很重要,因为终止可能在多种情况下发生,例如当 Windows 需要释放内存或设备失去(电池)电源时。
https://msdn.microsoft.com/en-us/magazine/jj660301.aspx
你可以做的是实现某种 ping 机制,让你的前端应用程序不断地将时间戳写入隔离存储。如果这些 ping 超过预定义的时间戳,您可以假设您的应用程序已终止并退出后台任务。