iOS中关于UIApplication的详细介绍
2016-06-24 18:00
435 查看
UIApplication
什么是UIApplication?
UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.一个iOS程序启动后创建的第一个对象就是UIApplication对象我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
UIApplication作用?
利用UIApplication对象,能进行一些应用级别的操作.可以设置应用程序图标右上角的红色提醒数字设置联网指示器的可见性可以设置应用程序的状态栏,进行应用之间的跳转.
模仿UIApplication单例.
要求:程序一启动就创建创建对象.创建的对象只能通过share的方式获取对象.不能够进行alloc 操作,当执行alloc时, 程序发生崩溃
1.程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main方法优先调用
2.保证调用alloc时会产生异常, 重写系统的是alloc方法
3.通过share方式获取对象
UIApplication功能
1.设置应用提醒数字
设置提醒数字为20效果图
2.设置连网状态
设置用户友好查看联网状态
3.设置状态栏
默认
默认情况
应用程序的状态栏,默认是交给控制器来管理的.
控制器提供的方法,可以直接重写这个方法在控制器当中设置状态栏样式
设置完成后
隐藏状态栏,通过控制器的方式.同样实现方法:返回NO时为不隐藏返回YES时为隐藏
通常在开发当中都是应用程序来管理状态栏的.来做统一管理,不然的话, 会有很多个控制器. 会非常的麻烦.
想要让应用程序管理状态栏,要在info.plist当中进行配置,在最后一个添加一个key值:View controller-based status bar appearance设置为NO.就是应用程序来管理了. 并且控制器管理会无效
通过UIApplication来管理状态.
1.获取UIApplication
2.设置状态栏样式.
3.设置状态的隐藏
4.跳转网页
UIApplication代理
所有的移动操作系统都有个致命的缺点:app很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止,还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件, 这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件
delegate可处理的事件包括:
应用程序的生命周期事件(如程序启动和关闭)
系统事件(如来电)
内存警告
...
UIApplication会在程序一启动时候创建一个遵守UIApplicationDelegate的代理.这个就是我们程序一创建时的AppDelegate类。AppDelegate就是遵守了UIApplicationDelegate协议。 在这个类中定义很多监听系统事件的方法.同时也定义了一些应用程序的生命周期方法.
主要方法有:
应用程序的生命周期
应用程序的启动原理(重要)
程序启动时执行main函数,在main函数当中有以下操作.
程序完整启动流程
1.执行Main
2.执行UIApplicationMain函数.
3.创建UIApplication对象,并设置UIApplicationMain对象的代理.UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认 为UIApplication.UIApplication的第四个参数为UIApplication的代理.
4.开启一个主运行循环.保证应用程序不退出.
5.加载info.plist.加载配置文文件.判断一下info.plist文件当中有没有Main storyboard file base name里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕.
6.通知应用程序,调用代理方法
什么是UIApplication?
UIApplication对象是应用程序的象征.每一个应用都有自己的UIApplication对象,这个对象是系统自动帮我们创建的, 它是一个单例对象.一个iOS程序启动后创建的第一个对象就是UIApplication对象我们只能通过[UIApplication sharedApplication]获得这个单例对象,不能够手动去创建它.
UIApplication作用?
利用UIApplication对象,能进行一些应用级别的操作.可以设置应用程序图标右上角的红色提醒数字设置联网指示器的可见性可以设置应用程序的状态栏,进行应用之间的跳转.
模仿UIApplication单例.
要求:程序一启动就创建创建对象.创建的对象只能通过share的方式获取对象.不能够进行alloc 操作,当执行alloc时, 程序发生崩溃
1.程序一启动的时候就创建对象.
当类被加载到内存的时候就会调用load的方法,它会比main方法优先调用
1.设置应用提醒数字
设置提醒数字为20效果图
2.设置连网状态
设置用户友好查看联网状态
3.设置状态栏
默认
默认情况
应用程序的状态栏,默认是交给控制器来管理的.
控制器提供的方法,可以直接重写这个方法在控制器当中设置状态栏样式
设置完成后
隐藏状态栏,通过控制器的方式.同样实现方法:返回NO时为不隐藏返回YES时为隐藏
想要让应用程序管理状态栏,要在info.plist当中进行配置,在最后一个添加一个key值:View controller-based status bar appearance设置为NO.就是应用程序来管理了. 并且控制器管理会无效
通过UIApplication来管理状态.
1.获取UIApplication
所有的移动操作系统都有个致命的缺点:app很容易受到打扰。比如一个来电或者锁屏会导致app进入后台甚至被终止,还有很多其它类似的情况会导致app受到干扰,在app受到干扰时,会产生一些系统事件, 这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件
delegate可处理的事件包括:
应用程序的生命周期事件(如程序启动和关闭)
系统事件(如来电)
内存警告
...
UIApplication会在程序一启动时候创建一个遵守UIApplicationDelegate的代理.这个就是我们程序一创建时的AppDelegate类。AppDelegate就是遵守了UIApplicationDelegate协议。 在这个类中定义很多监听系统事件的方法.同时也定义了一些应用程序的生命周期方法.
主要方法有:
应用程序的生命周期
程序启动时执行main函数,在main函数当中有以下操作.
1.执行Main
2.执行UIApplicationMain函数.
3.创建UIApplication对象,并设置UIApplicationMain对象的代理.UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认 为UIApplication.UIApplication的第四个参数为UIApplication的代理.
4.开启一个主运行循环.保证应用程序不退出.
5.加载info.plist.加载配置文文件.判断一下info.plist文件当中有没有Main storyboard file base name里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕.
6.通知应用程序,调用代理方法
相关文章推荐
- android横竖屏切换问题
- Agera 一个来自谷歌官方的超轻量Android库
- Android RecyclerView点击事件与长按事件
- iOS开发中遍历方式 (有借鉴)
- Android中与js进行交互
- Android书签
- 解决Android 5.0中出现的警告:Service Intent must be explicit
- Android Camera 流程梳理
- Android帧动画(Drawable Animation)的使用总结
- Android常用的设计模式(三)
- Android onResume() 返回Activity时调用
- 微信支付
- IOS 获取设备信息
- Unity3d shader -- fixed function shader
- 详细配置android studio的gradle
- 自定义View之绘制钟表
- Android5.0中Cardview的简单使用
- 在ListView的item项里使用CheckBox或者Button时,OnItemClickListener无响应的问题
- [iOS] gitHUB 冲突方法 Line XX: StartTag: invalid element name
- Android系统启动流程分析之启动应用