1、概述
所有的移動作業系統都有個緻命的缺點:app很容易受到打擾。比如一個來電或者鎖屏會導緻app進入背景甚至被終止。
還有很多其它類似的情況會導緻app受到幹擾,在app受到幹擾時,會産生一些系統事件,這時uiapplication會通知它的delegate對象,讓delegate代理來處理這些系統事件。
delegate可處理的事件包括:
(1)應用程式的生命周期事件(如程式啟動和關閉)
(2)系統事件(如來電)
(3)記憶體警告
(4)… …
2、uiapplicationdelegate
每次建立完項目,都有個帶有“appdelegate”字眼的類,它就是uiapplication的代理。
mjappdelegate預設已經遵守了uiapplicationdelegate協定,已經是uiapplication的代理。
我們就可以根據需要直接在mjappdelegate中實作相應方法即可,在對應情況發生會自動調用這些方法。比如,我們可以在mjappdelegate中的- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions;方法中建立控制器,并設定為視窗的rootviewcontroller。