剛才做Win8 Metro app時突然想到前段時間一直很糾結的程序生命周期問題,不知在哪邊實現墓碑機制。想到現在在RP版本可能會有改進,經過一番測試,
結論如下:RP版本自動實現了墓碑機制,在關閉程序(窗口拉下或ALT+F4)后10~15秒左右,會執行OnSuspend事件。
測試程序如下:
page1中通過點擊按鈕跳轉到Page2:
Window.Current.Content =
new
TomestonPage();
Window.Current.Activate();
Page2中顯示默認的TextBlock,點擊按鈕修改TextBlock值
<Button Content=
"
Button
"
HorizontalAlignment=
"
Left
"
Margin=
"
465,109,0,0
"
VerticalAlignment=
"
Top
"
Click=
"
Button_Click_1
"
/>
<TextBlock HorizontalAlignment="Left" Height="59" Margin="207,109,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="178" x:Name="tbContent"/>
private void Button_Click_1(object sender, RoutedEventArgs e)
{
tbContent.Text = "1234324";
}
一切執行完畢,開啟另一個Metro程序,這時前一個APP應是處於掛起狀態,程序一直沒有進入OnSuspend事件,且過段時間再次進行前一程序,頁面還是保持原狀。
經過以上次,我方才得到以上結論,不知結論是否正確,如果是這樣,我們就省事兒多啦~~