首页 > 编程语言 >iOS程序运行生命周期

iOS程序运行生命周期

时间:2023-06-13 22:33:08浏览次数:54  
标签:11 10 生命周期 程序运行 demo010 iOS 1062790 2015


iOS程序运行生命周期

 

 

在文件AppDelegate.m中定义了iOS程序运行的各个生命周期,清楚了解程序运行中的每个生命周期,对于我们的开发工作将提供极大的帮助。下面代码就是AppDelegate.m中各生命周期对应的方法。

 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"didFinishLaunchingWithOptions");
    return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"applicationWillResignActive");
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
    NSLog(@"applicationDidEnterBackground");
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
    NSLog(@"applicationWillEnterForeground");
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSLog(@"applicationDidBecomeActive");
}
- (void)applicationWillTerminate:(UIApplication *)application {
    NSLog(@"applicationWillTerminate");
}


 

 在上面的代码中,每个生命周期的方法中都加入了NSLog输出,就可以让我们很清楚的知道生命周期的调用时机了。接下来我们对程序运行的各种情况进行分析:

 

 

情况1:点击程序icon开始运行(首次运行)

输出日志:

2015-11-10 09:05:27.744 demo010[82333:1062790] didFinishLaunchingWithOptions
2015-11-10 09:05:27.744 demo010[82333:1062790] applicationDidBecomeActive

 

情况2:程序运行中,按home键

输出日志:


2015-11-10 09:30:53.671 demo010[82333:1062790] applicationWillResignActive
2015-11-10 09:30:54.254 demo010[82333:1062790] applicationDidEnterBackground

 

情况3:程序运行中按home键之后重新再点击程序icon继续运行

输出日志:


2015-11-10 09:40:42.469 demo010[82333:1062790] applicationWillEnterForeground
2015-11-10 09:40:42.987 demo010[82333:1062790] applicationDidBecomeActive

 

情况4:程序运行中下拉状态栏,界面显示状态栏信息(如下图1)

输出日志:(

注意:这里只调用applicationWillResignActive!!!

2015-11-10 09:44:14.655 demo010[82333:1062790] applicationWillResignActive

iOS程序运行生命周期_生命周期


 (图1)

 

情况5:关闭上图1中的状态栏界面,重新显示程序界面

输出日志:( 注意:这里同样也只调用 applicationDidBecomeActive,与上面情况4对应 !!!

2015-11-10 09:58:16.066 demo010[82333:1062790] applicationDidBecomeActive

 

情况6:程序运行中,按电源键(锁屏)

输出日志: (注意:与情况2相同)

2015-11-10 10:02:59.205 demo010[82333:1062790] applicationWillResignActive
2015-11-10 10:02:59.205 demo010[82333:1062790] applicationDidEnterBackground

 

情况7:在情况6的基础上,再按电源键(解除锁屏)

输出日志: (注意:与情况3相同)

2015-11-10 11:03:08.704 demo010[316:84616] applicationWillEnterForeground
2015-11-10 11:03:09.086 demo010[316:84616] applicationDidBecomeActive

 

情况8:程序运行中,双击home键(如下图2)

输出日志: (注意:与情况4相同) 2015-11-10 11:13:33.282 demo010[331:87016] applicationWillResignActive

iOS程序运行生命周期_home键_02


(图2)

 

情况9:点击上图2中的自己的程序应用(注意是点击,而不是将其上滑删除),以便继续运行。

输出日志: (注意:与情况5相同)

2015-11-10 11:22:22.370 demo010[331:87016] applicationDidBecomeActive

 

情况10:在上图2的情况下,将程序应用上滑删除。

输出日志:

2015-11-10 11:24:11.935 demo010[331:87016] applicationDidEnterBackground
2015-11-10 11:24:11.980 demo010[331:87016] applicationWillTerminate

 

 

 

 

 

 

 

 

 

标签:11,10,生命周期,程序运行,demo010,iOS,1062790,2015
From: https://blog.51cto.com/u_16160131/6473916

相关文章

  • 【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】
    【原】iOSCoreAnimation动画系列教程(一):CABasicAnimation【包会】 在iOS中,图形可分为以下几个层次: 越上层,封装程度越高,动画实现越简洁越简单,但是自由度越低;反之亦然。本文着重介绍CoreAnimation层的基本动画实现方案。在iOS中,展示动画可以类比于显示生活中的“拍电影”。拍电影有......
  • iOS-自定义的画圆或弧的UIView
     iOS-自定义的画圆或弧的UIView CustomViewOfCircle.h#import<UIKit/UIKit.h>@interfaceCustomViewOfCircle:UIView{//是否自定义属性:myDotBOOLisDefinedMyDot;//是否自定义属性:myRadiusBOOLisDefinedMyRadius;//是否自定义属......
  • iOS开发问题集锦
     1.Xcode开发连真机运行报错Pleaseverifythatyourdevice’sclockisproperlyset,andthatyoursigningcertificateisnotexpired. 1.在正常运行的工作电脑上的Xcode导出开发者账号(*.developerprofile)或PKCS12文件(*.p12)进入XcodePreferences|Accounts:选中Apple......
  • 二次封装Axios完全体
    importaxios,{Axios}from"axios";importtype{AxiosRequestConfig}from"axios";import{message}from"antd";//功能失败的错误原因constauthErrMessage:any={ 10031:"登录失效,需要重新登录", 10032:"您太久没登录,请重新登录~......
  • Linux系统下如果在编译时指定程序运行时动态链接库相对目录,及为程序收集默认不安装动
    1、在编译中指定编译的程序去查找的动态链接库目录qmake是这样指定运行时动态库目录的:  QMAKE_LFLAGS+=-Wl,-rpath=/usr/local/ultrasec/policyfilter/lib/ 2、用lddPROG  查看程序的动态链接库,如果没有的动态链接库,就从其它计算机或者网络上找这个库,然后拷贝到指......
  • ios开发 :CUICatalog: Invalid asset name supplied: '(null)'
    _iconImage.image=[UIImageimageNamed:sourceDic[@“image”]];明明有图片,但还是提示这个图片名称不存在报错CUICatalog:Invalidassetnamesupplied:'(null)'打断点进去,显示_iconImage的值是nil添加断点定位到错误在109行-(NSArray*)messageTableSource{if(_mes......
  • vue中使用axios获取不到响应头Content-Disposition的解决办法
    项目中,后端返回的文件流,fileName是机构名称+服务器时间。前端需要拿到响应头里的Content-Disposition字段的值,从中获取文件名在控制台Headers中可以看到相关的字段和文件名,但是在axios里面却获取不到 如果想要让客户端访问到相关信息,服务器不仅要在heade里添加,还要将它们在A......
  • 万物皆可“小程序”——迟到的iOS 14之猜想
    这是一篇没能赶上热点的文章,但好在对技术的讨论总是多多益善,不分冷热。作者:唐赓&LiveVideoStack编辑:CocoLiang时间倒回4月9日,9To5Mac通过iOS14的代码,猜测苹果或将推出全新的APP下载和使用方式,用户只需扫描二维码或打开链接,即可体验应用程序的某些特定功能,而不需要在iPhone或iPad......
  • axios-使用axios发起基本的GET请求
    axios是一个专注于网络请求的库!<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> </head> <body> <scriptsrc="lib/axios.js"></script> <script> //1.调......
  • Axios 代理跨域后后端无法接收Session问题
    将一个MVC项目重构为一个前后端分离项目,前端使用了react+axios+vite...。在前后端分离项目中,通常都会使用代理来解决跨域问题,vite需要在vite.config.js文件中配置代理:exportdefaultdefineConfig({server:{//代理配置proxy:{//请求前缀......