我想在手机处于锁定屏幕模式时执行一些计算,无论应用程序是在前台还是背景上。
我知道为了做到这一点,我需要在App类中使用OnObscured事件。但是,它仅在应用程序位于前台时启动,但不在后台启动。
所以,我想知道在应用程序运行后台时是否存在检测手机状态的任何方法。
我想到了一些疯狂的东西,但是要访问一个在手机处于锁定屏幕时不允许使用的API属性,然后捕获异常,然后,如果手机处于活动状态或睡眠。
我愿意听取新的想法。
答案 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的内容吗? 本文介绍 - 如何避免墓碑。但你不能在锁定屏幕下做很多工作。