C# WebAuthenticationBrowser.authenticateSync()终止UWP应用程序

C# WebAuthenticationBrowser.authenticateSync()终止UWP应用程序,c#,windows-runtime,uwp,windows-10-mobile,windows-10-universal,C#,Windows Runtime,Uwp,Windows 10 Mobile,Windows 10 Universal,我有一个通用的Windows 10应用程序,我可以使用它 var token = await WebAuthenticationBrowser.AuthenticateAsync(...) 通过facebook验证用户身份。当它只是一个前台应用程序时,在一个普通场景中一切都很好。但是,当我添加BackgroundMediaPlayer时,启动音乐播放以及前台和后台之间的通信,调用 var token = await WebAuthenticationBrowser.AuthenticateAs

我有一个通用的Windows 10应用程序,我可以使用它

var token = await WebAuthenticationBrowser.AuthenticateAsync(...)
通过facebook验证用户身份。当它只是一个前台应用程序时,在一个普通场景中一切都很好。但是,当我添加BackgroundMediaPlayer时,启动音乐播放以及前台和后台之间的通信,调用

var token = await WebAuthenticationBrowser.AuthenticateAsync(...)
实际上杀死了我的前台应用程序。当用户在代理中完成身份验证时,他将被带回应用程序,但应用程序被杀死并重新实例化。这当然意味着等待AuthenticateTasync()不会产生任何结果,因为它是应用程序的新实例

调用WP8.1中引入的
WebAuthenticationBrowser.AuthenticateAndContinue()
时,我会理解这种行为,但在UWP中该API已被弃用

所以我的问题是-这是预期的行为(应用程序被杀死并重新启动)?如果是,我如何在应用程序重新启动期间从WebAuthenticationBroker获取令牌

下面是一个要复制的示例项目(在txt文件中包含确切的步骤): 下面是一个运行示例的视频(首先在不运行BackgroundMediaPlayer的情况下启动代理,然后再运行它):

我在twitter上开始了关于这一点的对话:但到目前为止,我得到的唯一帮助是使用以下链接“检查激活类型”:

该链接描述activationKind具有“WebAuthenticationBrokerContinuation”,但 1) 这只适用于Windows Phone,而不是Windows 10
2) 当您运行样本时,您将永远不会收到它。只有“已启动”,且previousExecutionState为“已终止”

也许您应该尝试找出当后台任务首先运行时应用程序终止的原因。我不认为这是正常的行为。我不认为有办法找到答案。系统在调用代理时挂起应用程序,之后可能会或可能不会完全终止应用程序。但在这一点上,应用程序无法找出原因,因为它已被挂起。我尝试了你的代码,这不一定是第二次导航到重新启动前台进程的应用程序,有时我必须尝试几次才能复制。看起来像是间歇性终止。也许你应该先找出后台任务运行时应用程序终止的原因。我不认为这是正常的行为。我不认为有办法找到答案。系统在调用代理时挂起应用程序,之后可能会或可能不会完全终止应用程序。但在这一点上,应用程序无法找出原因,因为它已被挂起。我尝试了你的代码,这不一定是第二次导航到重新启动前台进程的应用程序,有时我必须尝试几次才能复制。看起来像是间歇性终止。