[HW3] App生命週期

Jameskrauser Lee
6 min readMar 1, 2018

--

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

All log

SourceCode:
https://github.com/jameskrauser/HW3_obj_lifecycle

Reference Data:
http://seniorzhai.github.io/2014/12/11/Android%E3%80%81iOS%E5%A4%A7%E4%B8%8D%E5%90%8C%E2%80%94%E2%80%94%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/

--

--

Jameskrauser Lee
Jameskrauser Lee

Written by Jameskrauser Lee

For the last few years. i was involved mostly in the development of Automatic Fare collection system for the Chennai Metro. Familiar with C++ and iOS.

No responses yet