当手机屏幕被锁定时,Windows Phone 应用程序进入休眠/墓碑模式。可以通过更改 PhoneApplicationService 类的 UserIdleDetectionMode 和 ApplicationIdleDetectionMode 属性来更改此行为。默认情况下,UserIdleDetectionMode 和 ApplicationIdleDetectionMode 设置为 Enable,这允许服务在用户空闲时锁定手机,并在手机锁定时停用应用程序。
如下所示,我使用了 ApplicationIdleDetectionMode,当设置为 Disable 时,手机锁定时不会停用应用程序。
PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;
PhoneApplicationFrame rootFrame = App.Current.RootVisual as PhoneApplicationFrame;
if (rootFrame != null)
{
rootFrame.Obscured += new EventHandler<ObscuredEventArgs>(rootFrame_Obscured);
rootFrame.Unobscured += new EventHandler(rootFrame_Unobscured);
}
ApplicationIdleDetectionMode 禁用后,在重新启动应用程序之前无法启用。如果您尝试启用它,它将引发异常。要处理设备的锁定和解锁状态,您可以调用 RootFrame 的 Obscured 和 Unobscured 事件处理程序。手机被锁定时会调用 Obscured。在这里,我们应该使用最少的 CPU,更少的电池消耗等。当手机解锁时,Unobscured 会被调用。这是我们可以恢复应用程序所有状态的阶段。