1、UIApplication的概念ios
一、每個應用都有本身的UIApplication對象,並且是單例的。app
二、經過[UIApplication sharedApplication]能夠得到這個單例對象。atom
三、一個iOS程序啓動後建立的第一個對象就是UIApplication對象。url
四、利用UIApplication對象,能進行一些應用級別的操做。spa
// 一、設置應用程序圖標右上角的紅色提醒數字 @property(nonatomic) NSInteger applicationIconBadgeNumber; // 二、設置聯網指示器的可見性 @property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
3、UIApplication有個功能十分強大的openURL:方法代理
- (BOOL)openURL:(NSURL*)url; // openURL:方法的部分功能有 // 一、打電話 UIApplication *app = [UIApplication sharedApplication]; [app openURL:[NSURL URLWithString:@"tel://10086"]]; // 二、發短信 [app openURL:[NSURL URLWithString:@"sms://10086"]]; // 三、發郵件 [app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]]; // 四、打開一個網頁資源 [app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]]; // 五、打開其餘app程序
4、IOS應用程序5種狀態code
1.Not running:對象
應用尚未啓動,或者應用正在運行可是途中被系統中止。 blog
2.Inactive:生命週期
當前應用正在前臺運行,可是並不接收事件(當前或許正在執行其它代碼)。通常每當應用要從一個狀態切換到另外一個不一樣的狀態時,中途過渡會短暫停留在此狀態。惟一在此狀態停留時間比較長的狀況是:當用戶鎖屏時,或者系統提示用戶去響應某些(諸如電話來電、有未讀短信等)事件的時候。
3.Active:
當前應用正在前臺運行,而且接收事件。這是應用正在前臺運行時所處的正常狀態。
4.Background:
應用處在後臺,而且還在執行代碼。大多數將要進入Suspended狀態的應用,會先短暫進入此狀態。然而,對於請求須要額外的執行時間的應用,會在此狀態保持更長一段時間。另外,若是一個應用要求啓動時直接進入後臺運行,這樣的應用會直 接從Notrunning狀態進入Background狀態,中途不會通過Inactive狀態。好比沒有界面的應用。注此處並不特指沒有界面的應用,其實也能夠是有界面的應用,只是若是要直接進入background狀態的話,該應用界面不會被顯示。
5.Suspended:
應用處在後臺,而且已中止執行代碼。系統自動的將應用移入此狀態,且在此舉以前不會對應用作任何通知。當處在此狀態時,應用依然駐留內存但不執行任何程序代碼。當系統發生低內存告警時,系統將會將處於Suspended狀態的應用清除出內存覺得正在前臺運行的應用提供足夠的內存。
5、iOS程序的生命週期和啓動過程
一、生命週期
a.程序的生命週期是指應用程序啓動到應用程序結束整個階段的全過程
b.每個IOS應用程序都包含一個UIApplication對象,IOS系統經過該UIApplication對象監控應用程序生命週期全過程
c.每個IOS應用程序都要爲其UIApplication對象指定一個代理對象,並由該代理對象處理UIApplication對象監測到的應用程序生命週期事件。
二、啓動過程
5、四大對象關係圖