2012-08-02 28 views
1

我想了解應用程序生命週期,城域應用中的onlaunched事件和恢復事件之間的區別?

場景: - 我正在啓動一個空白應用程序,之後我故意從應用程序中出來並打開一個新的應用程序。我看着任務管理器一段時間後,所以這個空白應用程序似乎被暫停,那麼我再次啓動的那一刻空白應用程序(哪去了暫停狀態),它具有正確的命中恢復的事件嗎?

1),但爲什麼恢復事件不觸發? (恢復事件需要解僱,因爲該應用程序從暫停狀態來運行狀態)

2)爲什麼onlaunched觸發的事件?

3)onlaunched時,只有當應用程序啓動的第一次發射或終止後,被激活?

在此先感謝。

+0

*您將如何*回到您的應用程序? – 2012-08-02 11:27:29

+0

我去啓動屏幕和ping應用程序(因爲我固定的應用程序啓動屏幕)。 – user1516781 2012-08-02 11:29:54

回答

1

我沒有太多的經驗,地鐵應用程式,但我會盡力回答:

廣告1)如果您的應用程序從暫停運行狀態去(在圖中這個MSDN article on Metro Application Lifecycle恢復事件應該實際上火災。我在類似的情況下做了一些測試,結果如此。順便說一句和,這裏是這個事件中,我發現最好的說明:

當一個應用程序從掛起狀態恢復,它進入運行狀態及從它在哪裏,當它被暫停繼續。沒有應用程序數據丟失,因爲它存儲在內存中。因此,大多數應用程序在恢復時不需要執行任何操作。但是,該應用可能已被暫停幾個小時甚至幾天。因此,如果您的應用有內容或網絡連接可能已經過時,應用程序恢復時應刷新這些內容或網絡連接。

廣告3)推出針對我的理解就是一種特殊的激活的(可能的入口點中的一個應用程序),這相當於從未運行過渡 - >運行。一些報價:

當應用程序被激活時,出於任何原因,系統會發送 激活的事件。

當用戶切換到您終止應用程序,該系統發送 Activated事件,與一種將推出和PreviousExecutionState 設置爲終止ClosedByUser。該應用程序應該加載其保存 應用數據並刷新其顯示的內容

廣告2)如果OnLaunched被處死恢復事件沒有被解僱,我的猜測是你的應用程序在「非運行狀態」,例如:它在系統重新啓動之前被系統終止(Suspended-> Not Running)。我不知道爲什麼任務管理器可能沒有刷新這些信息。

0

我可以回答這個問題:

1)但是爲什麼恢復事件沒有被觸發? (因爲應用程序從暫停狀態進入運行狀態,需要重新啓動事件)

有一個調試按鈕可用於強制您的應用程序進入暫停狀態。在快速搜索visual studio搜索「調試位置」。這是一個調試工具欄,您可以在調試時點擊「掛起」按鈕。一旦你回到你的應用程序(在你回去之前幾秒鐘),那麼你應該得到恢復的事件。

+0

此功能在那裏,因爲應用程序在調試器中運行時不會被暫停。 – 2014-12-05 21:32:06

0

ResumeEvent未觸發,因爲您已從開始屏幕或從其固定的磁貼打開該應用程序。在這種情況下,該應用程序被視爲已再次啓動。這就是執行OnLaunched事件而不是ResumeEvent的原因。

要確保ResumeEvent已被觸發,請在切換到其他應用程序後等待10秒鐘,然後轉到左上角並將應用程序移回前臺。確保等待10秒鐘,然後Windows將該應用程序視爲運行。

相關問題