Apple Watch學習之路 生命週期研究

wongstar發表於2017-12-14

無論是Apple app或者Apple Watch app 掌握整個應用的生命週期尤為重要.

下圖是watch app整個生命週期圖

圖一.png
圖二.png
圖三.png

watchOS生命週期中在程式碼中是怎麼實現的呢? 當使用者在Home 介面點選app, watchOS 就把它啟動,WatchOS先找到app的Info.plist 檔案中key為WKExtensionDelegateClassName所對應的檔案。如圖三中所對應的檔案為ExtensionDelegate.swfit。此時app進入前臺模式。如圖一app進入Foreground模式. 圖一中A.B.C在ExtensionDelegate.swfit所對應的方法。

  • A. The applicationDidFinishLaunching method is called.-->app啟動時候呼叫.
  • B. The applicationDidBecomeActive or applicationWillResignActive method is called.-->app從閒置狀態到活動狀態.
  • C. The applicationWillEnterForeground or applicationDidEnterBackground method is called.-->app進入後臺模式.

WKInterfaceController 生命週期

圖四.png

如圖四所示: app啟動後WatchOS會自動載入WatchKit 中Interface.storyboard中的Initial Controller 調完之後會初始化UI然後會呼叫WKInterfaceController中生命週期

- (void)awake(withContext context: Any?);
- (void)willActivate();
- (void)didDeactivate();
複製程式碼
  • awake(withContext context: Any?):類似UIViewcontroller中的viewDidLoad:方法,用來配置interface controller。初始化相關的放在這裡。
  • willActivate:介面將要顯示給使用者時會被呼叫,類似UIViewcontroller中viewWillAppear:方法。這個方法主要用來對檢視進行一些小的調整,初始化還是要放在init和awake(withContext context: Any?):裡
  • didDeactivate:用來清空介面,程式進入不活動狀態。可以用它來終止Timer或者stop動畫。在這個方法不能再對介面進行操作。

#####想隨時瞭解我的動態,歡迎大家關注我的個人公眾號蟻農之家

蟻農之家.jpg

相關文章