c# - 如何检测 Windows 8 何时进入休眠或恢复状态

标签 c# windows-8 windows-runtime lifecycle

我有一个应用程序可以保持与服务器的连接,但是如果用户离开并且平板电脑进入休眠状态,我想优雅地处理断开连接,并且我还想在用户退出时重新登录唤醒平板电脑。

我尝试将以下代码放入我的连接类中,但它们从未被解雇。

Application.Current.Suspending += this.OnAppSuspending;
Application.Current.Resuming += this.OnAppResuming;;

最佳答案

对于桌面应用程序,您可以使用 SystemEvents.PowerModeChanged用于了解 Windows 是否进入休眠状态的事件。我不知道这是否也适用于平板电脑,但你可以尝试一下......

来自 MSDN:

• Resume 操作系统即将从挂起状态恢复。

• StatusChange 操作系统已引发电源模式状态通知事件。这可能表明电池电量不足或正在充电、交流电源和电池之间发生转换,或者系统电源状态发生其他变化。

• 暂停 操作系统即将暂停。

SystemEvents.PowerModeChanged += OnPowerChange;

private void OnPowerChange(object s, PowerModeChangedEventArgs e) 
{
    switch ( e.Mode ) 
    {
        case PowerModes.Resume: 
        break;
        case PowerModes.Suspend:
        break;
    }
}

关于c# - 如何检测 Windows 8 何时进入休眠或恢复状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256664/

相关文章:

c# - 如何在 C# 中创建类 A,其中 A 只能由 B、C、D 继承?

c# - 具有缩放、水平滚动和居中内容的 WinRT ItemsControl

c++ - 在桌面应用程序中托管 Metro 应用程序

c++ - Visual Studio 项目中的 $(PackageConfiguration) 变量是什么?

windows-runtime - 如何在收到推送通知时播放自定义声音而不实现推送通知触发任务

c# - 前台线程与后台线程

c# - 在修改 C# WPF 应用程序中的绑定(bind)属性之前,如何确保我与 UI 同步以基于绑定(bind)更改样式?

c# - 当有两个 watch 实例时,StopWatch 返回 0ms

javascript - 如何使用键盘输入来做某事?

javascript - WinJS Promise 然后出错