在一些情況下,我們需要監聽應用程式切換到後台或者從後台切換至前台的事件,從而進行相關處理操作。支付寶應用鎖屏(IOS,Android平台)的處理中就需要監聽此事件,在使用者將應用程式切換至後台一段時間後再切換至前台的情況下就需要彈出鎖屏頁面。
下圖給出Windows 市集應用的生命週期圖,應用前後台切換就是在運行和掛起直接進行切換,關於生命週期的詳細介紹可以參閱官方文檔:http://msdn.microsoft.com/zh-cn/library/windows/apps/hh464925.aspx#app_visibility。
程式進入掛起狀態,會觸發App.Suspending事件,但程式再次切到前台時會觸發App.Resuming事件,下面就列出應用程式進入掛起狀態並觸發App.Suspending事件的幾種情況進行說明。
1.應用程式在前台情況下,通過左側拖動開啟其他應用程式,則會在大約10秒後應用程式進入掛起狀態。
2.按Home鍵將應用切入後台,中間不開啟其他應用的情況下再次按Home鍵將應用切到前台,應用程式不會進入掛起狀態。
3.按Home鍵將應用切入後台,讓後再開啟一個其他應用程式,則在開啟其他應用程式10秒後應用程式進入掛起狀態。
4.應用程式在前台情況下,按電源鍵或者系統自動進入鎖屏狀態10秒後應用程式進入掛起狀態。
5.需要注意的是在Debugger情況下是無法判斷應用程式的生命週期,固無論在何種情況下應用程式都不會進入掛起狀態。
對於運行在Visual Studio Debugger上的應用,系統會無法判斷應用狀態,導致suspend、resume、activate等事件不被正確觸發,所以Visual Studio提供了一個Debug Location工具列來給開發人員手動觸發Suspend、resume等事件。開啟Debug location的方法是點擊Visual Studio上方View菜單,Toobars -> Debug Location,這樣就可以在工具列中看到具體選項。
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/home/