我还没有太多使用 Metro 应用程序的经验,但我会尝试回答:
广告 1) 如果您的应用程序从 Suspended 状态变为 Running 状态(如Metro Application Lifecycle 上的 MSDN 文章中的图表所示),resumeing事件实际上应该触发。我在类似的情况下做了一些测试,它确实做到了。顺便说一句,这是我发现的对这个事件的最佳描述:
当应用程序从 Suspended 状态恢复时,它会进入 Running 状态并从暂停时的位置继续。应用程序数据不会丢失,因为它存储在内存中。因此,大多数应用程序在恢复时不需要做任何事情。但是,该应用程序可能已暂停数小时甚至数天。因此,如果您的应用程序的内容或网络连接可能已经过时,则应在应用程序恢复时刷新这些内容或网络连接。
广告 3)我所理解的 Launch 只是一种特殊的 Activation (应用程序的可能入口点之一),它对应于从Not running -> Running的转换。一些报价:
当应用程序被激活时,无论出于何种原因,系统都会发送 Activated 事件。
和
当用户切换到您终止的应用程序时,系统会发送 Activated 事件,其中 Kind 设置为 Launch,PreviousExecutionState
设置为Terminated或ClosedByUser。应用程序应加载其保存的应用程序数据并刷新其显示的内容。
广告 2) 如果执行了OnLaunched并且没有触发Resuming事件,我猜您的应用程序处于“未运行状态”,例如它在您重新启动之前被系统终止(暂停->未运行)。我不知道为什么任务管理器可能没有刷新此信息。