我们有一个UWP应用程序,它有3个注册的后台任务,一个是 app-trigerred 任务,它一直在后台运行直到失败。
该方法是恢复保存在后台处理器对象中的最后保存状态,直到现在还没有失败,它与那些保留到后台活动的最后一刻的数据一起工作,如果UI内容尚未消失则返回数据(通过从最近的应用程序滑动应用程序)
唯一的问题是当主线程消失且应用程序必须在激活时重新启动时,应用程序的最后一个实例终止,这意味着后台对象也已消失,我们无法恢复任何内容。 />
是否有任何错误的实施可能导致这种情况,有没有办法阻止它?
澄清:后台任务每5秒获取用户的位置并将其发送到服务器。没有日志,但使用调试输出,我确保BGtask一直运行,直到重新启动,它被暂停和终止。进入后台时会触发应用程序触发器,并且在离开背景时强制关闭任务
感谢。
答案 0 :(得分:1)
尝试使用
存储应用暂停时所需的数据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秒一次的位置。