如何确定AppService关闭是由于UWP应用程序挂起还是完全信任进程关闭?

6
考虑以下示例:https://github.com/StefanWickDev/UWP-FullTrust/tree/master/UWP_FullTrust_3 当UWP应用程序创建AppService时,它会观察相关的任务取消以便检测AppService关闭。在以下情况下,AppService会被关闭:
1.全信任进程删除AppServiceConnection。 2.UWP应用程序已暂停。
我想要实现的逻辑是:如果连接由于完全托管进程消失(例如崩溃)而断开,则重新启动完全托管进程,但避免在UWP应用程序即将暂停时重新启动。我没有找到一个可靠的方法来做到这一点。
在App.OnTaskCanceled中,参数中没有任何指示导致关闭的原因(对于两种情况都是SystemPolicy)。此时App.IsSuspending为false。App.Suspending事件总是在触发App.OnTaskCanceled之后发生。
我可以启动一个计时器并延迟重启,相信App.Suspending在一个时间窗口内会被触发,但我更喜欢使用一种不那么复杂的方式。
顺便说一句,我不确定在AppServiceConnection打开的情况下UWP应用程序是否会被暂停。至少VS允许我使用生命周期控件触发暂停/恢复,UWP应用程序的Suspending/Resuming会被触发。
对于桌面桥接UWP应用程序,挂起/恢复行为似乎没有文档记录,所以我基本上是在尝试逆向工程来解决这个问题...
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接