如何在 Visual Studio 中触发 Windows 应用商店应用的挂起、继续和后台事件
不调试时,Windows 进程生命期管理 (PLM) 根据用户操作和设备状态控制应用程序的执行状态 - 启动、挂起、继续和终止应用程序。 在调试时,Windows 禁用这些激活事件。 本主题介绍如何在调试器中触发这些事件。
本主题还介绍如何调试后台任务。 通过后台任务,即使应用程序不运行,也可在后台进程中执行某些操作。 可使用调试器使应用程序进入调试模式,然后不启动 UI 即启动和调试后台任务。
有关进程生命期管理和后台任务的更多信息,请参见Launching, resuming, and multitasking。
在本主题中
触发进程生命期管理事件
触发后台任务
从标准调试会话中触发后台任务事件
在应用程序未运行时触发后台任务
从安装的应用程序中触发进程生命期管理事件和后台任务
诊断后台任务激活错误
触发进程生命期管理事件
在当用户从应用程序切换至别处时或在 Windows 进入电量不足状态时,Windows 可挂起应用程序。 可响应 Suspending 事件,将相关的应用程序和用户数据保存到永久存储并释放资源。 从**“已挂起”状态继续应用程序时,该应用程序将进入“正在运行”**状态,并从其挂起之处继续。 可响应 Resuming 事件,还原或刷新应用程序状态并回收资源。
尽管 Windows 尝试尽可能多地在内存中保留挂起的应用程序,但如果没有足够资源可将应用程序保留在内存中,则 Windows 仍可终止该应用程序。 用户还可显式关闭应用程序。 没有特殊事件指示用户已关闭应用程序。
在 Visual Studio 调试器中,可手动挂起、继续和终止应用程序以调试进程生命周期事件。 若要调试进程生命周期事件,请执行以下操作:
在要调试的事件的处理程序中设置断点。
按 F5 启动调试。
在**“调试位置”**工具栏上,选择要触发的事件:
注意,**“挂起并关闭”**将关闭应用程序并结束调试会话。
触发后台任务
任何应用程序均可注册后台任务以响应某些系统事件,即使应用程序未运行也是如此。 后台任务不能运行直接更新 UI 的代码,但可通过磁贴更新、徽章更新和 toast 通知向用户显示信息。 有关更多信息,请参见Supporting your app with background tasks
可从调试器触发对应用程序启动后台任务的事件。
备注
调试器只能触发那些不包含数据的事件,如指示设备中状态更改的事件。必须手动触发需要用户输入或其他数据的后台任务。
触发后台任务事件的最实际的方法是在应用程序未运行时触发。 但是,也支持在标准调试会话中触发该事件。
从标准调试会话中触发后台任务事件
在要调试的后台任务代码中设置断点。
按 F5 启动调试。
从**“调试位置”**工具栏上的事件列表中,选择要启动的后台任务。
在应用程序未运行时触发后台任务
在要调试的后台任务代码中设置断点。
打开启动项目的调试属性页。 在解决方案资源管理器中,选择该项目。 在**“调试”菜单中,选择“属性”**。
对于 C++ 项目,可能必须展开**“配置属性”,然后选择“调试”**。
执行下列操作之一:
对于 Visual C# 和 Visual Basic 项目,选择**“不启动,但在启动时调试代码”**
对于 JavaScript 和 Visual C++ 项目,从**“启动应用程序”列表中选择“否”**。
按 F5 使应用程序进入调试模式。 注意,**“调试位置”工具栏上的“进程”**列表显示应用程序包名称以指示您处于调试模式下。
从**“调试位置”**工具栏上的事件列表中,选择要启动的后台任务。
从安装的应用程序中触发进程生命期管理事件和后台任务
使用“调试安装的应用程序”对话框加载已安装到调试器中的应用程序。 例如,您可以调试已从 Windows 应用商店安装的应用程序,或在具有应用程序的源文件但没有针对应用程序的 Visual Studio 项目时调试应用程序。 利用“调试安装的应用程序”对话框,您可以在 Visual Studio 计算机或远程设备上在调试模式下启动应用程序,也可以将应用程序设置为在调试模式下运行但不启动应用程序。 有关更多信息,请参见 JavaScript 或 Visual C++、Visual C# 和 Visual Basic 版本的如何启动调试会话的在调试器中启动安装的应用程序部分。
在将应用程序加载到调试器中后,您可以使用上述任意过程。
诊断后台任务激活错误
Windows 事件查看器中针对后台基础结构的诊断日志包含详细信息,这些信息可用于诊断和解决后台任务错误。 若要查看日志,请执行以下操作:
打开事件查看器应用程序。
在**“操作”窗格中,选择“视图”,然后确保选中“显示分析和调试日志”**。
在**“事件查看器(本地)”树中,依次展开“应用程序和服务日志”/“Microsoft”/“Windows”/“BackgroundTasksInfrastructure”**节点。
选择**“诊断”**日志。