Apple Education. 「App Development with Swift」。 Apple Inc. - Education,2017. iBooks.
配合這些狀態下View的生成或轉換會伴隨著下列方法
a. 僅剛載入時出現一次
Apple Education. 「App Development with Swift」。 Apple Inc. - Education,2017. iBooks.
Ex: 當我們按下 app的icon從Not running狀態,進到前台狀態從inactive狀態進入到active狀態,開始使用後就一直維持在active狀態,如果現在剛好有人打電話來接電話,會從active狀態回到inactive再到background狀態,過一段時間(約幾秒鐘)後進入到suspended狀態;當打完電話後會從suspended狀態回到後台回到inactive狀態再回到active狀態。
a. Did Finish Launching
此方法的階段介在Not running -> Inactive狀態
b. Will Resign Active
此方法的階段約介在要從Active -> Inactive,也就是我們按下Home或是接電話的那一刻。
c. Did Enter Background
此方法的階段緊接在Will Resign Active方法後面,類似介在Background狀態到Suspended狀態,會有約五秒的時間儲存使用者資料,所以會在此方法寫入儲存使用者資料的程式碼。
PS: 注意:如果你的应用程序支持后台运行,那么当用户退出程序时,将不会调用applicationWillTerminate()方法,而是调用applicationDidEnterBackground() 方法。
d. Will Enter Foreground
從後台要準備進入前台的active狀態,如果本來在後台運行,點下icon那刻起要執行的方法。
e. Did Become Active
一般會在Will Enter Foreground之前調用,從inactive -> active狀態。
f. Will Terminate
此方法在程序終止時(要從記憶體釋放時),使用的方法,一般也會在此寫下儲存資料的程式碼。
/Did Enter Background v.s. Will Terminate/
如果今天有些app支援在後台持續運行,例如GPS,播放音樂,會用Did Enter Background方法;如果apps不常在後台運行,那就寫在Will terminate。
Hi 樓主安安,請問如果在 viewWillAppear 時,去做定位的功能,如果定位太久的話,會影響畫面顯示嗎?
目前測試起來感覺是會有一點點,但不明顯,有時候甚至定位藍點已經出現了,地圖畫面會延遲出現,如果有理解錯誤再麻煩指正了,謝謝啦。
我測試在 viewWillAppear 裡面加入 sleep(5),意思是請 viewWillAppear 先睡覺五秒,就發現畫面卡住,要等他睡醒才會顯示