Windows Phone App 生命週期
Application Life Circle
目前在Windows Phone App的運行裡面,其中尤好記個程序相互組合起來的,而這些組合起來的動作就稱之為生命週期。如右表所示,Windows Phone App 的生命週期有: Launching event、Page OnNavigatedTo Method、Running、OnNagitivedFrom Method、Deactived Event、Closing event、Dormant、Tombstoneed、Activited Event與Close Event這些動作。
Photo By Pou’s IT Life
Launching ~ Runnig Event
當我們開啟應用程式的時候,會產生新的的應用程式來執行並且觸發Launching 事件。在Launching事件中通常會做一些將資料初始化的動作,做完初始化的動作才讓應用程式的頁面顯示出來,所以在Launching中通常不會執行需要長時間執行的動作,如果長時間都沒有完成Lauching的動作之前螢幕都會是黑黑的一片~~,所以通常Launching必須在短時間內就完成,不然就會被誤認為是不是應用程式異常,這不是我們樂見的。
完成Launching後,就會進入到OnNavigatedTo這個動作裡。進入後會顯示出我們的載入的頁面中。之後就可以開始使用App上面的功能,進入到Running中,在這動作裡App就會開始運行其內容,直到使用者關閉App或者暫時離開App的時候,Rungging Event 才會暫停。
Dormant and Tombstoned
App在運行期間,如果用戶按下開始鍵或者有其他應用程式載入的時候,會使App進入OnNavigatedFrom離開主頁面,然後觸發Deactivated 事件。這時App會進入到Dormant 休眠狀態中,將資料保存在記憶體裡面,以便要回去App的時候不用在重新載入該App。但是如果進入Dormant狀態後久久沒有回去該App,這時App狀態就會從Dormant 狀態跑到俗稱的 Tombstoned 墓碑狀態中。因為如果進入休眠模式期間太久沒有從新啟用app,系統會將該App占用在記憶體中的資料釋放出來,以增加記憶體的使用空間。這樣如果下一次要開啟該App的時候,就會重新載入該App的資料,時間會比從Dormant狀態回到可使用的狀態還要久。
Closing
在運行App的時候,如果要將該App關掉,此時狀態就會從Running Event中移到 OnNavigatedFrom裡,App會從該主要的畫面中離開,之後就會關閉該App了。
補充一點,當在該App中開啟多個Page的時候,舊的頁面會像堆疊的概念一樣被疊在下面。此時如果想要回到第一個開啟的Page中的話,使用者必須按下實體返回鍵,一個一個照順序的返回想要瀏覽的頁面中,而返回的時候,前一個頁面就會被清除掉。
Summary
對於要設計一個擁有完整App架構的開發者而言,瞭解整個App生命週期的概念是很重要的,唯有瞭解之後才能在適當的時間中以最少的使用效能換取最大的使用效果。