0

嗨,大家好我知道app.xaml文件中的OnSuspending功能可以讓我在應用程序暫停時保存信息。如果應用程序被用戶關閉,我希望我的用戶能夠自動註銷到我的數據庫中。這裏是我的代碼:如何檢查Windows Universal 10應用程序是否關閉不被最小化?

這工作對我很好,所以當我的用戶關閉該應用程序在其設備中的函數被調用,他們都已經註銷。然而,我的問題功能還會在用戶將應用程序最小化或將應用程序置於後臺並進入其他應用程序時將用戶註銷。那麼,如何調整我的代碼,以便我的註銷功能僅在用戶關閉設備中的應用程序時才起作用?

+1

你不能。 WinRT(又名UWP)的核心功能是,您的進程在被暫停後可以立即終止。每當操作系統需要其他進程的RAM時都會發生。 「即時」條款可以防止類似於你所要求的任何事情。 –

回答

0

當最小化的應用,其實有兩件事情發生:

當從您的應用程序到另一個應用程序的用戶切換,您的應用程序是沒有 可見更長,但仍保持運行狀態,直到Windows暫停 它。如果用戶切換離開您的應用程序,但在可以暫停之前激活或切換 ,該應用程序仍處於運行 狀態。

因此,如果用戶最小化/切換到另一個應用程序,回來速度不夠快,你的應用程序將繼續運行,您的OnSuspending處理器將不會執行。在後臺進行操作時,操作系統將確定您的應用何時停止以及何時終止(如漢斯在其評論中提到的那樣)。


因此,要解決您的問題:保持你的OnSuspending處理程序,處理app resume事件重新登錄,這將涵蓋最小化和關閉。

+0

嘗試實施後臺任務,您可以在其中響應某些系統事件,如UserAway,UserPresent等:https://msdn.microsoft.com/library/windows/apps/br224839 –

相關問題