我编写了一个应用程序,它在后台线程中执行一些冗长的操作,例如 Web 请求。我的问题是一段时间后自动屏幕锁定会关闭屏幕并且我的操作被中止。
有没有办法防止在这些操作过程中自动关闭屏幕?或者是否可以在屏幕关闭时以某种方式继续运行?
我知道有一些方法可以防止屏幕在调试时关闭,但我需要最终用户掌握这种行为。因此我不能依赖手机上的一些设置,而是一些程序化的解决方案。
我编写了一个应用程序,它在后台线程中执行一些冗长的操作,例如 Web 请求。我的问题是一段时间后自动屏幕锁定会关闭屏幕并且我的操作被中止。
有没有办法防止在这些操作过程中自动关闭屏幕?或者是否可以在屏幕关闭时以某种方式继续运行?
我知道有一些方法可以防止屏幕在调试时关闭,但我需要最终用户掌握这种行为。因此我不能依赖手机上的一些设置,而是一些程序化的解决方案。
UserIdleDetectionMode
可以使用current的属性来强制屏幕停留PhoneApplicationService
。
要禁用自动屏幕锁定:
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
要再次启用它:
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Enabled;
更多信息可以在MSDN上找到
我知道这个问题是关于 Windows Phone 8 的,但我很难弄清楚 Windows Phone 8.1(通用 XAML 应用程序)的方式。采用:
var displayRequest = new Windows.System.Display.DisplayRequest();
displayRequest.RequestActive();
显示视频或在没有用户输入的情况下长时间运行的应用程序可以通过调用 DisplayRequest::RequestActive 请求显示保持开启。激活显示请求后,设备的显示屏会在应用可见时保持打开状态。当用户将应用程序移出前台时,系统会停用应用程序的显示请求,并在应用程序返回前台时重新激活它们。
请参阅:http: //msdn.microsoft.com/en-us/library/windows/apps/br241816.aspx