B4-UIApplication(概念)
一、UIApplication的概念
1、每一个应用都有自己的UIApplication对象,而且是单例的。
2、通过[UIApplication sharedApplication]可以获得这个单例对象。
3、一个iOS程序启动后创建的第一个对象就是UIApplication对象。
4、利用UIApplication对象,能进行一些应用级别的操作。
// 1、设置应用程序图标右上角的红色提醒数字 @property(nonatomic) NSInteger applicationIconBadgeNumber; // 2、设置联网指示器的可见性 @property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
三、UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url; // openURL:方法的部分功能有 // 1、打电话 UIApplication *app = [UIApplication sharedApplication]; [app openURL:[NSURL URLWithString:@"tel://10086"]]; // 2、发短信 [app openURL:[NSURL URLWithString:@"sms://10086"]]; // 3、发邮件 [app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]]; // 4、打开一个网页资源 [app openURL:[NSURL URLWithString:@"http://ios.itcast.cn"]]; // 5、打开其他app程序
四、IOS应用程序5种状态
1.Not running:
应用还没有启动,或者应用正在运行但是途中被系统停止。
2.Inactive:
当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(诸如电话来电、有未读短信等)事件的时候。
3.Active:
当前应用正在前台运行,并且接收事件。这是应用正在前台运行时所处的正常状态。
4.Background:
应用处在后台,并且还在执行代码。大多数将要进入Suspended状态的应用,会先短暂进入此状态。然而,对于请求需要额外的执行时间的应用,会在此状态保持更长一段时间。另外,如果一个应用要求启动时直接进入后台运行,这样的应用会直 接从Notrunning状态进入Background状态,中途不会经过Inactive状态。比如没有界面的应用。注此处并不特指没有界面的应用,其实也可以是有界面的应用,只是如果要直接进入background状态的话,该应用界面不会被显示。
5.Suspended:
应用处在后台,并且已停止执行代码。系统自动的将应用移入此状态,且在此举之前不会对应用做任何通知。当处在此状态时,应用依然驻留内存但不执行任何程序代码。当系统发生低内存告警时,系统将会将处于Suspended状态的应用清除出内存以为正在前台运行的应用提供足够的内存。
五、iOS程序的生命周期和启动过程
1、生命周期
a.程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程
b.每一个IOS应用程序都包含一个UIApplication对象,IOS系统通过该UIApplication对象监控应用程序生命周期全过程
c.每一个IOS应用程序都要为其UIApplication对象指定一个代理对象,并由该代理对象处理UIApplication对象监测到的应用程序生命周期事件。
2、启动过程
五、四大对象关系图