APP喘蟆、APP與ViewController
- 啟動app
?? ----- didFinishLaunchingWithOptions
?? ---------- viewDidLoad
?? ---------- viewWillAppear
?? ---------- viewWillLayoutSubviews
?? ---------- viewDidLayoutSubviews
?? ---------- viewDidAppear
?? ----- applicationDidBecomeActive
總結(jié):
1缓升,整體順序是:app加載
→ 根視圖控制器加載
→ app活躍
2,注意:app活躍
是發(fā)生在根視圖控制器DidAppear
之后的
3履肃,注意:在app的啟動過程中是沒有將要進入前臺(applicationWillEnterForeground)
這個步驟的
- 單擊Home鍵仔沿,app進入后臺
?? ----- applicationWillResignActive
?? ----- applicationDidEnterBackground
總結(jié):
1,整體順序是:app將不活躍
→ app進入后臺
2尺棋,注意:在app進入后臺的過程中封锉,ViewController是不參與其中的,也就是說當(dāng)前屏幕上顯示的ViewController并不會調(diào)用視圖控制器將要消失(viewWillDisappear)
和 視圖控制器已經(jīng)消失(viewDidDisappear)
- 點擊APP桌面圖標膘螟,app進入前臺
?? ----- applicationWillEnterForeground
?? ----- applicationDidBecomeActive
總結(jié):
1成福,整體順序是:app將要進入前臺
→ APP活躍
2,注意:跟app進入后臺一樣荆残,在該過程中奴艾,ViewController是不參與其中的,在屏幕上出現(xiàn)的ViewController并不會調(diào)用視圖控制器將要顯示(viewWillAppear)
和 視圖控制器已經(jīng)顯示(viewDidAppear)
- app鎖屏
?? ----- applicationWillResignActive
?? ----- applicationDidEnterBackground
總結(jié):
1内斯,app鎖屏操作所產(chǎn)生的生命周期跟app進入后臺是相同的
- app解鎖
?? ----- applicationWillEnterForeground
?? ----- applicationDidBecomeActive
總結(jié):
1蕴潦,app解鎖操作所產(chǎn)生的生命周期跟app進入前臺是相同的
- app銷毀
?? ----- applicationWillResignActive
?? ----- applicationDidEnterBackground
?? ----- applicationWillTerminate
總結(jié):
1,整體順序是:app將不活躍
→ app進入后臺
→ app將要銷毀
2俘闯,注意:這個過程ViewController同樣是不參與的
- 雙擊Home鍵潭苞,由app進入app卡片列表
?? ----- applicationWillResignActive
總結(jié):
1,在app進入app卡片列表的過程中真朗,僅有一步被調(diào)用:app將不活躍(applicationWillResignActive)
2此疹,注意:如果此時,用戶在app卡片列表中選擇了其他app遮婶,接下來會調(diào)用:app進入后臺(applicationDidEnterBackground)
3蝗碎,注意:如果此時,用戶點擊Home鍵旗扑,app由app卡片列表重新回到前臺蹦骑,接下來會調(diào)用:app活躍(applicationDidBecomeActive)
,要注意的是在這個過程中并不會調(diào)用app將要進入前臺(applicationWillEnterForeground)
ViewController與ViewController
- vc1 PushTo / PresentTo vc2
?? -----vc2----- viewDidLoad
?? -----vc1----- viewWillDisappear
?? -----vc2----- viewWillAppear
?? -----vc2----- viewWillLayoutSubviews
?? -----vc2----- viewDidLayoutSubviews
?? -----vc2----- viewDidAppear
?? -----vc1----- viewDidDisappear
?? -----vc1----- presentViewCompleted (optional)
//[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"-----vc2-----dismissViewControllerCompleted");
}];
- vc2 PopTo / DismissTo vc1
?? -----vc2----- viewWillDisappear
?? -----vc1----- viewWillAppear
?? -----vc1----- viewDidAppear
?? -----vc2----- viewDidDisappear
?? -----vc2----- dismissViewControllerCompleted (optional)
//[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"-----vc2-----dismissViewControllerCompleted");
}];
?? -----vc2----- dealloc
Demo地址:https://github.com/MajorLMJ/LMJTest_APPLifeCycle
版權(quán)聲明:出自MajorLMJ技術(shù)博客的原創(chuàng)作品 肩豁,轉(zhuǎn)載時必須注明出處及相應(yīng)鏈接脊串!