[HW3] App生命週期
IOS:預設window主要有四層。
Android:預設window主要有一層。
最上層:為桌面main() ,是作業系統在管理,開發者無法去調整動用到!
功能:APP切換用,讓系統判斷是否閃退
第二層:提供為alert元件來推資訊,或是navigate元件。
功能:彈出提示資訊。
第三層:提供為view元件。
第四層:一般調用層,又叫統一繪圖層。
PS:
目前的IOS APP 每個view都有自己的繪圖層。
IOS的生命週期有層級及強弱之分。
Android的生命週期則沒有層級及強弱之分。
重點語法:
AppDelegate:進出APP的動作都在這裡處理。
對應Android:無
ViewControllerBase:建議一定要先建一個Base。
對應Android:ActivityBase
ViewController:負責APP中各別view的處理。
對應Android:Activity:同時處理整支APP及各別表Form的處理。
ViewDidLoad:放置預設資料。
對應Android:OnCreate()
ViewWillAppear():看到畫面前要做的事情。 比如:下載資料的程式碼。
對應Android:OnStart()
ViewDidAppear():看到畫面後要做的事情。比如:顯示下載動畫或進度條。
對應Android:OnResume()
ViewWillDisappear():畫面消失前要做的事情。比如:動畫結束或釋放資源。
對應Android:OnPause()
ViewDidDisappear():畫面消失後要做的事情。
對應Android:OnStop()
HW3–0
安裝android.studio
https://developer.android.com/studio/index.html#downloads
HW3–1
做三個畫面ABC,並且讓每個畫面有以上幾個Function,並且加入LOG,
並且觀察A -》B -》C 中每個Function真實情況有呼叫了什麼Function.
HW3–2
A -》B -》C,最後 C要回到B。
Demo:
Step1.
[Form A] just initial Form。
Log:
[FormA] viewDidLoad
[FormA] viewWillAppear
[FormA] ViewDidAppear
Step2.
[Form A] Press Go To Form B,[Form B ] Appear。
Log:
[Form A] button clicked- Go To Form B
[Form A] prepareForSegue
[Form B] viewDidLoad
[Form A] viewWillDisppear
[Form B] viewWillAppear
[Form B] viewDidAppear
[Form A] viewDidDisppear
Step3.
[Form B] Press Go To Form C,[Form C ] Appear。
Log:
[Form B] button click Go To Form C
[Form B] prepareForSegue -Go To Form C
[Form C] viewDidLoad
[Form B] viewWillDisappear
[Form C] viewWillAppear
[Form C] viewDidAppear
[Form B] viewDidDisppear
Step4.
[at Form C]Press Back To Form B,[Form B ] Appear。
Log:
[Form C] button , Back To Form B
[Form B] viewDidLoad
[Form C] viewWillDisappear
[Form B] viewWillAppear
[Form B] viewDidAppear
[Form C] viewDidDisappear
Step5.
[at Form B]Press Back To Form A,[Form A ] Appear。
Log:
[Form B] button , back To Form A
[Form B] prepareForSegue-Back To Form A
[Form A] viewDidLoad
[Form B] viewWillDisappear
[Form A] viewWillAppear
[Form A] viewDidAppear
[Form B] viewDidDisappear
SourceCode:
https://github.com/jameskrauser/HW3_obj_lifecycle