0

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

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

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

我曾想过一些很疯狂的事情,但是访问一个在手机处于锁定屏幕时不允许使用的 API 属性,然后捕获异常,然后获取手机是否处于活动状态或睡眠状态。

我乐于听到新的想法。

4

2 回答 2

1

我想出了一个简单的事情——也许它会对你有所帮助:
我假设你已经禁用了空闲检测来在后台运行你的计算。
那么为什么不创建保存应用程序状态的变量呢?由于您必须首先启动您的应用程序,因此它进入前台,当调用 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;
}
于 2014-01-08T20:30:15.253 回答
0

这是您在锁定屏幕下搜索运行 Windows Phone 应用程序的内容吗?本文介绍 - 如何避免墓碑。但是你不能在锁屏下做很多工作。

于 2014-01-08T21:24:17.533 回答