我有一个应用程序可以保持与服务器的连接,但是如果用户离开并且平板电脑进入睡眠状态,我想优雅地处理断开连接,并且我还想在用户唤醒平板电脑时重新登录.
我尝试将以下代码放入我的连接类中,但它们从未被解雇。
Application.Current.Suspending += this.OnAppSuspending;
Application.Current.Resuming += this.OnAppResuming;;
我有一个应用程序可以保持与服务器的连接,但是如果用户离开并且平板电脑进入睡眠状态,我想优雅地处理断开连接,并且我还想在用户唤醒平板电脑时重新登录.
我尝试将以下代码放入我的连接类中,但它们从未被解雇。
Application.Current.Suspending += this.OnAppSuspending;
Application.Current.Resuming += this.OnAppResuming;;
对于桌面应用程序,您可以使用SystemEvents.PowerModeChanged事件来了解 Windows 是否进入睡眠状态。我不知道这是否也适用于平板电脑,但你可以试试......
来自 MSDN:
• Resume 操作系统即将从挂起状态恢复。
• StatusChange 操作系统已引发电源模式状态通知事件。这可能表示电池电量不足或正在充电、交流电源和电池之间的转换或系统电源状态的其他变化。
• Suspend 操作系统即将暂停。
SystemEvents.PowerModeChanged += OnPowerChange;
private void OnPowerChange(object s, PowerModeChangedEventArgs e)
{
switch ( e.Mode )
{
case PowerModes.Resume:
break;
case PowerModes.Suspend:
break;
}
}