iOS学习之详解AppDelegate
2024-10-14 09:11:10
AppDelegate,
类似于监听接口。 用个很简单的例子说:ios系统会控制每个程序的开始和结束。但是ios又不知道每个程序的开始需要运行成么代码,结束需要运行什么代码。这个时候,ios就制定了一个规则:如果你是我的代理程序,那么我在开始的时候就会运行你里面的– applicationDidFinishLaunching方法,我会在结束的时候运行你的– applicationWillTerminate方法,这是UIApplicationDeligate定义的接口。
//状态:应用程序开始加载
//经常用来存放当应用程序加载时想要显示的内容.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
NSLog(@"%s",__FUNCTION__);
return YES;
}
//当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电
- (void)applicationWillResignActive:(UIApplication *)application
{
NSLog(@"应用程序将要进入非活动状态,即将进入后台");
}
//应用程序已经进入后台运行
//使用该方法释放共享资源,保存用户数据,让timer无效,存储当前应用程序状态为下次恢复,如果你的应用程序支持后台,这个方法将会替代applicationWillTerminate:当用户退出;
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"如果应用程序支持后台运行,则应用程序已经进入后台运行");
}
//应用程序将要进入活动状态执行
//该方法经常用来重新唤醒进入后台时的任务;
- (void)applicationWillEnterForeground:(UIApplication *)application
{
NSLog(@"应用程序将要进入活动状态,即将进入前台运行");
}
//应用程序已经进入活动状态
//重启当应用程序不活跃状态时暂停的任务,或者开启还没有运行的任务,如果应用程序之前在后台,也可以刷新一下用户界面;
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"应用程序已进入前台,处于活动状态");
}
//应用程序将要退出,通常用于保存数据和一些退出前的清理工作,
- (void)applicationWillTerminate:(UIApplication *)application
{
NSLog(@"应用程序将要退出");
}
//当设备为应用程序分配了太多的内存,操作系统会终止应用程序的运行,在终止前会执行这个方法
//通常可以在这里进行内存清理工作,防止程序被终止
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@"系统内存不足,需要进行清理工作");
}
//当系统时间发生改变时执行
-(void)applicationSignificantTimeChange:(UIApplication *)application
{
NSLog(@"当系统时间发生改变时执行");
}
//当程序载入后执行
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
NSLog(@"当程序载入后执行");
}
关于项目里如何访问AppDelegate? ------ 有待学习;
最新文章
- 1Z0-053 争议题目解析690
- Office 365 系列三 ------ 创建Office 365普通账号
- AppVeyor-CI为GitHub项目做自动化集成(dotnet为主)
- NuGet 的使用
- D-Bus,kdbus和Binder
- ajax的项目实操(只用于记录部分文件未引入)
- 【转】请求处理机制其三:view层与模板解析
- 07-TypeScript的For循环
- Struts 1 之<;bean>;标签库
- Windows Community Toolkit 4.0 - DataGrid - Part03
- Hdoj 2501.Tiling_easy version 题解
- qlexpress
- 哪个中年IT男不是一边面对危机,一边咬牙硬抗【转】
- c# 重试机制
- 16_虚拟dom和dom diff算法
- 12.equals()方法总结
- SpringCloud stream连接RabbitMQ收发信息
- (三)HttpClient 抓取图片
- 03_Docker入门(上)之容器创建、容器使用、容器删除
- pig 自定义udf中读取hdfs 文件
热门文章
- iOS平台在ffmpeg中使用librtmp
- dictionary (key-value) (map容器)
- WPF - 使用WPF创建图表
- Shiro学习详解
- Activity与Fragment之间的通信
- OC 图片圆角实现
- Js获取元素样式值(getComputedStyle&;currentStyle)兼容性解决方案
- hibernate-4.3.5安装配置
- [置顶] 【VB.NET2010】注册表写入方法
- Android无法导入下载好的项目(和Eclipse中已经存在的项目命名一样导致冲突)解决办法