天天看點

iOS 的 UIApplicationDelegate 你懂多少

幾個方法

application:didFinishLaunchingWithOptions:
applicationWillResignActive:
applicationDidBecomeActive:
applicationWillEnterBackground:
applicationWillEnterForeground:
applicationDidReceiveMemoryWarning:
           

1application:didFinishLaunchingWithOptions

UIApplication 被執行個體化後第一個觸發的協定方法。這貨主要的任務,就是建立一個 UIWindow,在這貨上面顯示控制器的視圖;

一般在這個方法裡面引入根視圖,初始化一些第三方平台的庫;

一個參數launchOptions是個字典,一般在通知的時候會把通知的參數通過這個字典傳過來,一般在本地推送和遠端推送用到。

2 openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

這個主要是在同過外界程式打開app時,會執行這個方法;

例如app A裡面的按鈕點選打開手機上面的app B 并傳給參數

iOS 的 UIApplicationDelegate 你懂多少

利用上面的這個方法,appurlxib是app B裡面URL Types ,1111就是想要傳的參數,格式為URL Types://參數,當然參數可以省掉,URL Types:// 就行

接收參數如右圖:

iOS 的 UIApplicationDelegate 你懂多少

當然從此也可以看出 URL Types的作用 就是這個app的類似外部通路的網址,微信的分享的進入微信和退回應用,用的都是這個道理;

3applicationWillResignActive:

應用從 Active 變為 Inactive 時,觸發該協定方法,一般在将要退到背景執行,比如有電話打來時;

resign 為辭職,active 形象說明現在還處于活躍階段,但是馬上要離開

4applicationDidBecomeActive

應用從 Inactive 變為 Active 時,觸發該協定方法。

已經處于活躍狀态,在背景到前台,頁面已經呈現時執行;

5applicationdidEnterBackground:

應用切換至到背景時,觸發該協定方法。

應該執行上面的willresign active 然後馬上執行這個

6applicationWillEnterForeground:

應用切換至前台時,觸發該協定方法。

先執行這個,然後再執行DidBecomeActive

7applicationDidReceiveMemoryWarning:

裝置記憶體不足時,會觸發該協定方法;程式退到背景是不執行的,程式正常退出也不執行;隻有在記憶體危機時,蘋果為啦保護手機,将kill掉應用

8如果想主動擷取 AppDelegate 怎麼辦?

[[UIApplication sharedApplication] delegate]

9  didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
            
這個是用于極光推送的注冊,deviceToken為手機的唯一标示符            
10 didReceiveLocalNotification:(UILocalNotification *)notification
這是本地通知點選進入執行的方法