2012-08-08 21 views
3

我創建了一個應用程序,我希望該應用程序在鎖定屏幕下運行,並涉及在頁面之間導航。問題是,它給我一個錯誤「無法在鎖定屏幕下導航」。有沒有解決方法?在鎖定屏幕窗口下導航電話

回答

3

不幸的是,當手機被鎖定時,您的應用將會進入後臺(如果您使用的是後臺服務)或被取消激活。在這種情況下,無法執行頁面導航或UI相關任務。但是,您可以運行後臺任務。

+0

您可以在鎖定屏幕下呈現UI元素,但無法導航到其他頁面。此外,當屏幕鎖定時,應用程序未被禁用,因爲Application_Deactivated事件未觸發。你可以在'App.xaml.cs'中找到這個函數。這可能是該應用程序發送到後臺,但如果這是真的,我怎麼能夠在我的列表框中呈現UI項目,即使屏幕鎖定? – 2012-09-07 06:02:35

+0

對不起,我不同意。我只是寫了一段代碼並在我的設備上進行了測試,以確認我說的是什麼,而且我是正確的。當鎖定屏幕出現時,應用程序被取消激活。我在每個事件中寫入了Debug.WriteLine(EventName),例如App_Launching等,並觀察輸出窗口。 現在,您可以做的是:當您的應用運行並且手機被鎖定時,您的應用將被停用。但是,當用戶解鎖手機時,第一件事情就是您的應用程序被激活並提供。您可以在此事件中編寫UI更新/頁面導航代碼。把你的代碼App_Activated事件。嘗試一下,讓我知道。 – 2012-09-09 21:44:35

+0

我已經在App.xaml.cs中的Application_Deactivated函數中放置了一個斷點。當我鎖定手機時,該功能不會被執行。我可以這樣說,因爲我在那裏放了一個休息點。同樣解鎖Application_Activated不會被觸發。我希望你和我在同一條軌道上,而不是談論不同的事件:) – 2012-09-10 05:14:18

0

是米蘭, 我們正在討論相同的事件,但在我的情況下,它會觸及斷點並在「輸出」窗口中給出適當的事件名稱。我使用了以下代碼:

private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("App Launching"); 
} 
private void Application_Activated(object sender, ActivatedEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("App Activated"); 
} 
private void Application_Deactivated(object sender, DeactivatedEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("App Deactived"); 
} 
private void Application_Closing(object sender, ClosingEventArgs e) 
{ 
    System.Diagnostics.Debug.WriteLine("App Closing"); 
} 

我希望它有幫助。讓我知道如果仍然有任何問題。

+0

是正確的。直到現在,它並沒有像我這樣發生,因爲我正在使用這兩個語句'PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled';' 'PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;'現在觸發了斷點。 所以你是正確的應用程序發送到後臺。謝謝。從這個活動中學到了一些東西:) – 2012-09-11 08:57:57

+0

歡迎米蘭。 :) – 2012-09-11 09:30:20