在開發手機應用程式或是遊戲時,我們可能會需要在使用者不透過Back鍵或是Start鍵,而在程式中透過某個判斷主動關閉跳離(Close、Exit)應用程式
通常發生這種情況,可能是應用程式遇到狀況中止,或是說在進到應用程式當下,可能因為某些資源這在使用(如正在播放音樂),導致需要詢問使用者是否要關閉背景的資源,進入應用程式或是離開
諸如此類的情況無法讓使用者主動按壓時實體按鍵
老實說,對於Windows Phone8來講倒是還,不過Windows Phone7.1倒是挺麻煩
這邊來介紹一下我們該如何處理
前言
在開發手機應用程式或是遊戲時,我們可能會需要在使用者不透過Back鍵或是Start鍵,而在程式中透過某個判斷主動關閉跳離(Close、Exit)應用程式
通常發生這種情況,可能是應用程式遇到狀況中止,或是說在進到應用程式當下,可能因為某些資源這在使用(如正在播放音樂),導致需要詢問使用者是否要關閉背景的資源,進入應用程式或是離開
諸如此類的情況無法讓使用者主動按壓時實體按鍵
老實說,對於Windows Phone8來講倒是還,不過Windows Phone7.1倒是挺麻煩
這邊來介紹一下我們該如何處理
Windows Phone8 透過程式主動關閉應用程式
在WP8下有相對應的方法可以直接呼叫:
Application.Current.Termiate();
不過在文件中有講述,這個方法,不應該替代Back鍵做為正常離開應用程式的方式
「This method should only be used in cases where the user is unable to make any useful forward progress such as if the user is presented with an End User License Agreement and declines or if the app requires the user to login and the user can’t provide credentials. Otherwise, apps should not use this method to provide an “Exit” mechanism」
除非我們的應用程式出了狀況,或是某些原因導致無法進續進行(例如音樂的播放資源),所以必須要關閉應用程式才行時,才應該使用
Windows Phone 7.1透過程式主動關閉應用程式
其實這邊WP7才是這篇文章的重點,上述的狀況也會發在在WP7,可是WP7卻沒有提供這樣的指令,好加在,又或者該說沒想到還有這招(請記得要參考Microsoft.Xna.Framework與Microsoft.Xna.Framework.Game)
Microsoft.Xna.Framework.Game game = new Microsoft.Xna.Framework.Game();
game.Exit();
沒錯,真的,還且還真的行得通呀!!竟然可以透過XNA的Game.Exit()來關閉
(不過想想也合理,如果是開發XNA的遊戲的確有這功能可以用)
結論
沒想到還可以透過這樣非正規的方式來關閉WP7應用程式,真的是另外有點意外,不過真的有時候武們會需要使用到,或遇到這樣的必須由程式主動關閉,或是非透過靠Back鍵或是Start鍵返回、離開(中止)
參考資料
How to exit or close a Windows Phone app
Exiting a Windows Phone Application
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝 =)
另外要轉載請附上出處 感謝