防止Windows Phone 8上的自动屏幕锁定

PKe*_*eno 13 windows-phone-8

我编写了一个应用程序,它在后台线程中执行一些冗长的操作,例如Web请求.我的问题是,一段时间后,自动屏幕锁定关闭屏幕,我的操作中止.

有没有办法阻止屏幕在这些操作过程中自动关闭?或者在屏幕关闭时是否可以继续运行?

我知道有一些方法可以防止屏幕在调试时关闭,但我需要在最终用户手中这种行为.因此,我不能依赖手机上设置的某些设置,而是一些程序化的解决方案.

PKe*_*eno 20

可以使用当前UserIdleDetectionMode属性强制屏幕保持打开状态PhoneApplicationService.

要禁用自动屏幕锁定:

PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
Run Code Online (Sandbox Code Playgroud)

要再次启用它:

PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Enabled;
Run Code Online (Sandbox Code Playgroud)

可以在MSDN上找到更多信息

  • 当您遇到此类行为时,Microsoft建议您执行一些额外的操作.它们列在这里:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff941090%28v=vs.105%29.aspx (4认同)

ste*_*n.s 8

我知道这个问题是关于Windows Phone 8的,但我很难找到适用于Windows Phone 8.1(通用XAML应用程序)的方法.使用:

var displayRequest = new Windows.System.Display.DisplayRequest();
displayRequest.RequestActive();
Run Code Online (Sandbox Code Playgroud)

显示视频或在没有用户输入的情况下长时间运行的应用可以通过调用DisplayRequest :: RequestActive请求显示保持打开状态.激活显示请求后,当应用程序可见时,设备的显示仍然显示.当用户将应用程序移出前台时,系统会停用应用程序的显示请求,并在应用程序返回到前台时重新激活它们.

请参阅:http://msdn.microsoft.com/en-us/library/windows/apps/br241816.aspx