我们有一个 UWP 应用,它有 3 个注册的后台任务,一个是 应用触发 一直在后台运行直到失败的任务。
该方法是恢复保存在后台处理器对象中的最后保存的状态,直到现在还没有失败,它使用那些直到后台事件的最后时刻保存的数据,如果 UI 内容还没有消失,则返回数据(通过将应用程序从最近的应用程序中滑动)。
唯一的问题是当主线程消失并且应用程序必须在激活时重新启动时,应用程序的最后一个实例是 终止 ,这意味着背景对象也消失了,我们无法恢复任何东西。
是否有任何错误的实现会导致这种情况,有什么办法可以防止它?
澄清:后台任务每 5 秒获取一次用户的位置并将其发送到服务器。没有日志,但使用调试输出,我确保 BGtask 一直运行直到重新启动,它被挂起和终止。进入后台时触发应用程序触发器,并在离开后台时强制关闭任务。
谢谢。
最佳答案
当应用程序暂停使用时,尝试存储您需要的数据
private void OnSuspending(object sender, SuspendingEventArgs e)
{
var deferral = e.SuspendingOperation.GetDeferral();
//TODO: Save application state and stop any background activity
deferral.Complete();
}
在 app.xaml.cs 文件中。您不认为每五秒保存一次用户的位置并保存在您的数据库中是对他们隐私的侵犯吗?我不知道你的应用是关于什么的,但我认为没有任何理由每 5 秒就知道你的用户的位置。
关于win-universal-app - 防止在重新启动时终止 UWP 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438235/