日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]在進行WP開發(fā)之前,與其它開發(fā)技術(shù)一樣,我們需要簡單了解一個WP應(yīng)用序的生命周期,我們不一定要深入了解,但至少要知道在應(yīng)用程序生命周期內(nèi)的每一階段,我們應(yīng)當做什么,

在進行WP開發(fā)之前,與其它開發(fā)技術(shù)一樣,我們需要簡單了解一個WP應(yīng)用序的生命周期,我們不一定要深入了解,但至少要知道在應(yīng)用程序生命周期內(nèi)的每一階段,我們應(yīng)當做什么,不推薦哪些操作等,這也是為了讓我們開發(fā)出更高性能,更優(yōu)秀的應(yīng)用程序打下堅實的基礎(chǔ)。

下圖是官方給出的WP應(yīng)用程序執(zhí)行模型圖。

在上圖中,我們要注意以下四個事件:

1、Launching 事件。

說白了,就是應(yīng)用程序剛啟動時觸發(fā)的事件,由于這個事件的一點特殊性,盡量不要在該事件處理程序中做大量的操作,比如比較耗時間的作業(yè),為什么呢?你想想,如果你的某個操作需要消耗大量時間的話,那么,你肯定會發(fā)現(xiàn),程序啟動的速度很慢,這樣一來,用戶會很不爽,用戶體驗就大打折扣。

2、Activated事件。

應(yīng)用程序被激活時觸發(fā),例如,我的程序上面有一個按鈕,用戶點擊后打開發(fā)短信的“窗口”,當用戶發(fā)送完短信后,發(fā)短信的頁面就關(guān)閉,這時候,我們的應(yīng)用程序又從后臺程序變?yōu)榍芭_程序了,Activated事件將觸發(fā),注意的是,第一次啟動程序時是不觸發(fā)該事件的。

3、Deactivated事件。

與Activated事件相對,比如上面舉的例子,當我在程序上點擊按鈕時,發(fā)送短信的頁面將啟動,這時候,當前應(yīng)用程序就被前面的發(fā)短信的頁面擋住了,也就是說,當前程序被發(fā)送到后臺,這個時刻就觸發(fā)了Deactivated事件。不過,如果應(yīng)用程序?qū)㈥P(guān)閉,該事件不觸發(fā)。

4、Closing事件。

從字面意思就猜到該事件在啥時候發(fā)生了。對,當應(yīng)用程序關(guān)閉時發(fā)生,但在應(yīng)用程在導航中被發(fā)送到后臺時不發(fā)生,比如剛才說的打開發(fā)短信的頁面后,雖然程序被發(fā)送到后臺了,但由于它仍在運行,沒有退出,所以這個時候不觸發(fā)。但如果我從“開始”或桌面磁磚中啟動程序后,然后再通過“返回”鍵回到桌面,這個時候因為程序會退出,所以該事件觸發(fā)。

為了驗證這些事件是如何發(fā)生的,我們在app.xaml.cs文件中,分別為這幾個事件寫下調(diào)試輸出代碼。

[csharp] 
  1. // 應(yīng)用程序啟動(例如,從“開始”菜單啟動)時執(zhí)行的代碼  
  2. // 此代碼在重新激活應(yīng)用程序時不執(zhí)行;  
  3. private void Application_Launching(object sender, LaunchingEventArgs e)  
  4. {  
  5.     System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " - 應(yīng)用程序首次啟動。");  
  6. }  
  7.   
  8. // 激活應(yīng)用程序(置于前臺)時執(zhí)行的代碼  
  9. // 此代碼在首次啟動應(yīng)用程序時不執(zhí)行  
  10. private void Application_Activated(object sender, ActivatedEventArgs e)  
  11. {  
  12.     System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " - 應(yīng)用程序被激活。");  
  13. }  
  14.   
  15. // 停用應(yīng)用程序(發(fā)送到后臺)時執(zhí)行的代碼  
  16. // 此代碼在應(yīng)用程序關(guān)閉時不執(zhí)行  
  17. private void Application_Deactivated(object sender, DeactivatedEventArgs e)  
  18. {  
  19.     System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " - 應(yīng)用程序休眠。");  
  20. }  
  21.   
  22. // 應(yīng)用程序關(guān)閉(例如,用戶點擊“后退”)時執(zhí)行的代碼  
  23. // 此代碼在停用應(yīng)用程序時不執(zhí)行  
  24. private void Application_Closing(object sender, ClosingEventArgs e)  
  25. {  
  26.     System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " - 應(yīng)用程序關(guān)閉。");  
  27. }  

然后,我們運行程序,當主頁面出現(xiàn)后,點擊模擬器上的“返回”鍵把程序關(guān)閉。

這時候,我們再去看一下“輸出”窗口。

通過這個實驗,我們發(fā)現(xiàn)Activated事件和Deactivated事件未被觸發(fā),為什么?自己思考吧。

下面,我們在頁面中放一個按鈕,點擊按鈕后,打開發(fā)送短信的頁面。

[html] 
  1. <!--ContentPanel - 在此處放置其他內(nèi)容-->  
  2. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">  
  3.     <Button VerticalAlignment="Top"  
  4.             HorizontalAlignment="Center"  
  5.             Content="請點擊我"  
  6.             FontSize="64"  
  7.             Click="Button_Click"  
  8.             Margin="0,12,0,0"/>  
  9. </Grid>  

編寫單擊事件代碼。

[csharp] 
  1. private void Button_Click(object sender, RoutedEventArgs e)  
  2. {  
  3.     Microsoft.Phone.Tasks.SmsComposeTask sms = new Microsoft.Phone.Tasks.SmsComposeTask();  
  4.     sms.To = "13672265138";  
  5.     sms.Body = "你好啊,今天中午請我吃牛肉炒飯嗎?";  
  6.     sms.Show();  
  7. }  

按F5運行,再點擊按鈕,打開發(fā)短信頁面。

看看“輸出”窗口,這時候,就看到Deactivated事件發(fā)生了,因為程序還沒有退出,只是被放到后臺。

接著,點擊模擬器的“返回”,退回到我們的程序。再看看輸出窗口。

這個時候,Activated事件就發(fā)生了。

OK,今天的牛皮就吹到這里吧。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

將您的樹莓派Pico變成帶有觸摸屏界面的USB-HID設(shè)備!在這個項目中,我們將在Arduino IDE中設(shè)置編程環(huán)境,為3.5”Pico Touch LCD屏蔽配置庫,測試基本功能,創(chuàng)建簡單的按鈕(用于復(fù)制和粘貼),顯...

關(guān)鍵字: 樹莓派 觸摸屏 LCD Windows

這是一個演示,展示了我正在開發(fā)的自定義gpt,并在r/arduino上發(fā)布了一系列關(guān)于它的內(nèi)容。它可以很容易地與您的任何項目在您的標準工作。/ Arduino文件夾。它是多平臺的,所以無論你運行的是Windows、mac...

關(guān)鍵字: Windows macOS Linux Arduino項目管理器

在這里,我們在相當舊的Latte Panda V1單板計算機上啟動了Batocera,該計算機于2015年發(fā)布,擁有英特爾Atom x5-Z8350四核處理器和4GB DDR3L RAM。這個處理器在當時對于SBC來說是...

關(guān)鍵字: 單板計算機 Windows x86處理器

Amazon Q Developer是首個基于生成式AI的助手,旨在加速Windows.NET、VMware和大型機工作負載的遷移和現(xiàn)代化,縮短轉(zhuǎn)型時間并降低成本 北京2024年12月23日 /美通社/ -- ...

關(guān)鍵字: DEVELOPER 亞馬遜 NET Windows

Linux上的大多數(shù)軟件都是開源的,開發(fā)者在全球范圍內(nèi)對其進行了維護,并為之作出了貢獻。這就意味著,用戶可以在更大程度上,獲得更大的自由度,更多的選擇。而且,在 Windows中,很多先進的特性和專門的軟件都是需要許可的...

關(guān)鍵字: Linux Windows

7月21日消息,據(jù)國外媒體報道,近日全球范圍內(nèi)Windows設(shè)備出現(xiàn)大規(guī)模癱瘓事件,不僅導致飛機停飛、醫(yī)院服務(wù)中斷,更暴露了全球經(jīng)濟對微軟的深度依賴。

關(guān)鍵字: Windows

FTDI Chip高速USB 2.0系列FT4232HA是業(yè)界首款USB2.0高速轉(zhuǎn)四通道UART或雙通道MPSSE的車規(guī)級芯片。

關(guān)鍵字: USB2.0 車規(guī)級芯片 Windows

業(yè)內(nèi)消息,近日微軟和高通公司在微軟 Build 2024 會議中宣布,將為開發(fā)者提供 Windows 版驍龍開發(fā)套件(Snapdragon Dev Kit for Windows),用于制作與驍龍X芯片配合使用的 Cop...

關(guān)鍵字: 高通 Windows 開發(fā)者 驍龍 開發(fā)套件

好用、高效的多合一傳感器開發(fā)工具,支持給新一代高科技 MEMS 傳感器產(chǎn)品開發(fā)應(yīng)用軟件

關(guān)鍵字: 傳感器 Windows MacOS

雙系統(tǒng)將是下述內(nèi)容的主要介紹對象,通過這篇文章,小編希望大家可以對雙系統(tǒng)的相關(guān)情況以及信息有所認識和了解,詳細內(nèi)容如下。

關(guān)鍵字: 雙系統(tǒng) Windows Linux
關(guān)閉