检测Windows Phone空闲的方法

时间:2014-01-08 14:54:25

标签: windows-phone-7 windows-phone-8 idle-processing

我想在手机处于锁定屏幕模式时执行一些计算,无论应用程序是在前台还是背景上。

我知道为了做到这一点,我需要在App类中使用OnObscured事件。但是,它仅在应用程序位于前台时启动,但不在后台启动。

所以,我想知道在应用程序运行后台时是否存在检测手机状态的任何方法。

我想到了一些疯狂的东西,但是要访问一个在手机处于锁定屏幕时不允许使用的API属性,然后捕获异常,然后,如果手机处于活动状态或睡眠。

我愿意听取新的想法。

2 个答案:

答案 0 :(得分:1)

我想出了一个简单的事情 - 也许它会对你有所帮助:
我假设您已禁用空闲检测以在后台运行计算 那么为什么不创建保存App状态的变量呢?因为你必须首先启动你的应用程序,所以它转到前台,当调用Obscured并且IsLocked = true时,设置变量。然后你可以随时检查它:

public MainPage()
{
   InitializeComponent();

   App.RootFrame.Obscured+=RootFrame_Obscured;
   App.RootFrame.Unobscured+=RootFrame_Unobscured;
}

private bool AppIsLocked = false;

private void RootFrame_Unobscured(object sender, EventArgs e)
{
  if (AppIsLocked) AppIsLocked = false;
}

private void RootFrame_Obscured(object sender, ObscuredEventArgs e)
{
   if (e.IsLocked) AppIsLocked = true;
}

答案 1 :(得分:0)

这是您搜索Running a Windows Phone Application under the lock screen的内容吗? 本文介绍 - 如何避免墓碑。但你不能在锁定屏幕下做很多工作。