gpt4 book ai didi

c# - 如何禁用 UWP 应用程序暂停?

转载 作者:行者123 更新时间:2023-11-30 14:23:00 25 4
gpt4 key购买 nike

我正在使用 C# 为仅在台式机上运行的 Windows 10 开发 UWP 应用程序,目标平台版本为 10.0.14393.0。由于业务需求,应用程序生命周期必须像传统的 Win32 应用程序一样运行。

因此,我遵循了 this article 的建议使用 ExtendedExecutionReason.Unspecified 请求 ExtendedExecutionSession。我还将 Windows 配置为永不休眠和永不休眠。

不过,在极少数情况下,Windows 会以 SystemPolicy 为由撤销扩展执行 session ,然后继续挂起 UWP 应用。

两个问题:

  1. 我如何获取有关导致 Windows 撤销扩展执行 session 的原因的更多信息(系统日志?事件日志?)?
  2. 如何摆脱这些罕见的暂停情况,使 UWP 应用程序生命周期的行为与 Win32 应用程序完全一样(即,在用户明确停止运行之前保持运行)?

谢谢!

最佳答案

ExtendedExecutionSessionExtendedExecutionReason.Unspecified 受关于资源消耗的多重限制。由于您的测试设备没有电池,因此您的应用挂起的最可能原因是它的高内存使用。您可以尝试在内存消耗方面优化应用程序并利用 Memory Management APIs正如文档所建议的那样,但这仍然不能保证您的应用永远不会被暂停。

如果您的应用针对商业领域,那么您可以考虑使用更强大的 ExtendedExecutionForegroundSession而不是 ExtendedExecutionSession。这可能是您问题的完美解决方案。但这是一项受限功能,这意味着使用它的应用程序不允许进入 Windows 应用商店 - 只能进入适用于企业的 Windows 应用商店。您还需要在 list 中手动声明 extendedExecutionUnconstrained 功能(请参阅 Special and restricted capabilities section of documentation)以利用 API。

或者,您可以使用 hack 来防止应用程序长时间暂停:

  1. 使用 App services 按照 pnp0a03 建议与 Win32 应用程序通信。

  2. 使用 Background Media Playback 用于在后台无限循环播放无声音频样本(即使用户手动停止它或另一个应用程序暂停它以播放自己的背景音频,您的应用程序可以跟踪它并自动重新开始播放)。 p>

关于c# - 如何禁用 UWP 应用程序暂停?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47339719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com