关于UIApplication的认识
UIApplication对象的使用
1. 在安卓里面也有 一个该对象就是象征着这个程序 是一个单例
2.获取方法 [UIApplication shareApplication]
3.一个iOS程序启动时候的第一个对象是UIApplication的对象
4. 利用Application可以进行一鞋应用级别的操作的
5 利用Application可以进行一鞋应用级别的操作的 举例??????
[UIApplication shareApplication]
#define kDeviceVersion [[UIDevice currentDevice] systemVersion].floatValue
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
if (kDeviceVersion >= 8.0) {
// 使用本地通知 (本例中只是badge,但是还有alert和sound都属于通知类型,其实如果只进行未读数在appIcon显示,只需要badge就可, 这里全写上为了方便以后的使用)
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
// 进行注册
[application registerUserNotificationSettings:settings];
}
return YES;
}
-(void)onClick {
//做一些引用级别的操作
UIApplication *app = [UIApplication sharedApplication];
app.applicationIconBadgeNumber = 1000;
}
联网指示器
app.networkActivityIndicatorVisible = YES;
还可以做openURL操作
UIApplication 和delegate
在程序被打扰的时候 去交给代理去做一些事情
AppDelegate默认是应用程序的代理 已经遵守了 UIAppdeligate的协议了
只需要去.m里面去实现
分时机
1.当应用程序启动时候 系统自动调用 只会调 用一次
2.即将失去活动状态 不可以交互
3.应用进入后台调用 applicationDidEnterBackgroud
在这个里面去保存应用程序的数据 以及状态
4。即将进入前台调用 applicationWillEnterForegroud
在这里面去恢复应用程序的数据 以及状态
可以去那个内存销毁的方法里面去移除掉一些不用的数据 什么数组啊 图片啊
注意应用程序的生命周期和 控制器视图的生命周期
iOS程序启动的过程
打开 --进去之行main.m ---去执行 那个UIApplicationMain函数 ----参数有一个应用程序的类或者子类船舰一个全局的UIapplication对象 最后一个名字去创建一个代理对象----初始化UIApplication(去里面创建和设置代理对象 开启事件循环)----UIApplicationMain又一个死循环去 永远不会返回 里面一直去处理事件 --去监听系统的一些事件队列 (加载完毕 获取焦点 进入后台 ) ---去处理最先添加的事件先处理 后加的后处理 ---结束
UIwindow也是一个特殊的UIview 一个app只有一个 。