我想在手機處於鎖定屏幕模式時執行一些計算,無論應用程序位於前景還是背景。檢測Windows Phone空閒的方法
我知道爲了做到這一點,我需要使用App類中的OnObscured事件。但是,只有在應用程序處於前臺時纔會啓動,但不會在後臺啓動。
所以,我想知道是否存在任何方式來檢測手機狀態,而應用程序運行的背景。
我想到的東西,這將是瘋狂的,但訪問這是不允許使用的,而手機處於鎖定屏幕,然後捕獲異常,並與一個API特性,得到,如果手機被激活或睡覺。
我很樂意聽到新的想法。
我想在手機處於鎖定屏幕模式時執行一些計算,無論應用程序位於前景還是背景。檢測Windows Phone空閒的方法
我知道爲了做到這一點,我需要使用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;
}
這是你要搜索的Running a Windows Phone Application under the lock screen?本文介紹如何避免墓碑。但是你不能在鎖屏下做很多工作。
問題是:如果我的應用程序正在運行,然後我點擊設備的Windows按鈕它將在後臺進行,然後如果我鎖定屏幕,我的應用程序不會檢測到它。我試過使用這段代碼,但因爲在鎖定屏幕之前應用程序處於後臺,所以模糊事件不起作用。 – programmer23
當您點擊開始或搜索按鈕(或啓動器和選擇器)時,您的應用程序將進入休眠或墓碑狀態,並且不會在後臺工作(所有線程都停止)!你必須閱讀更多的文檔http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff817008%28v=vs.105%29.aspx;) – Romasz
如果你想要一些計劃任務或其他解決方案在後臺工作,你可能需要一個後臺代理:http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202942%28v=vs.105%29.aspx – Romasz