我想在手机处于锁定屏幕模式时执行一些计算,无论应用程序是在前台还是后台。
我知道为了做到这一点,我需要使用 App 类中的 OnObscured 事件。但是,它仅在应用程序处于前台时启动,而不是在后台启动。
所以,我想知道在应用程序运行后台时是否存在任何检测手机状态的方法。
我曾想过一些很疯狂的事情,但是访问一个在手机处于锁定屏幕时不允许使用的 API 属性,然后捕获异常,然后获取手机是否处于活动状态或睡眠状态。
我乐于听到新的想法。
我想在手机处于锁定屏幕模式时执行一些计算,无论应用程序是在前台还是后台。
我知道为了做到这一点,我需要使用 App 类中的 OnObscured 事件。但是,它仅在应用程序处于前台时启动,而不是在后台启动。
所以,我想知道在应用程序运行后台时是否存在任何检测手机状态的方法。
我曾想过一些很疯狂的事情,但是访问一个在手机处于锁定屏幕时不允许使用的 API 属性,然后捕获异常,然后获取手机是否处于活动状态或睡眠状态。
我乐于听到新的想法。
我想出了一个简单的事情——也许它会对你有所帮助:
我假设你已经禁用了空闲检测来在后台运行你的计算。
那么为什么不创建保存应用程序状态的变量呢?由于您必须首先启动您的应用程序,因此它进入前台,当调用 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;
}
这是您在锁定屏幕下搜索运行 Windows Phone 应用程序的内容吗?本文介绍 - 如何避免墓碑。但是你不能在锁屏下做很多工作。