iphone应用程序生命周期浅析

做iphone开发有必要知道iphone程序的生命周期,说白点就是当点击程序图标启动程序开始到退出程序整个使用运行过程中底下的代码都发生了什么,只有理解生命周期,有利于我们开发人员开发出更棒的应用

接下来从系统自带的项目模版-单视图应用模版来分析iphone应用生命周期,系统创建的这个应用启动后就一个view,上面什么都不显示,大家都懂得

下面贴两张图来描述一下应用程序的生命周期

两张图片要表达的意思都是差不多,当用户点击一个图标的时候,程序开始运行,从main函数开始,

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

main函数当中

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])这句话的意思是创建一个UIApplication对象,并设置他的委托类,这里第三个参数nil表示默认的是创建一个UIApplication对象,也可以写成UIApplication的子类,紧跟在后面的参数意思是设置UIApplication对象的委托,

在UIApplicationMain内部,实现了类似的代码

UIApplication *app = [[UIApplication alloc] init];
UIApplicationDelegate *delegate = [[UIApplicationDelegate alloc] init];
app.delegate = delegate;
UIApplication对象类似于总司令,UIApplication对象的委托就类似于他手下,总司令只需指挥,有事手下干,
UIApplication对象创建后直到程序结束前,他以单例的形式存在,可以通过[[UIApplication sharedApplication]delegate]来获取他的代理类,如下面代码

AppDelegate * delegate = (AppDelegate *)[[UIApplicationsharedApplication]delegate];

UIApplication对象创建好了,其委托也设置好了,下面看看他的委托(手下)都做了些什么事,进入AppDelegate.m中看

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

这个消息类似于jQuery的ready事件,告诉你一切准备就绪,你可以开始了.也可以形象的比喻成,好比总统宣誓就任,你可以决定提议国务卿和内阁组成,以及美联储主席等要职的安排等.

applicationWillTerminate

这个预示程序就要结束.

映射为当前程序王国的总统,就是你的任期到了,要做交接处理了.现在ios的应用可以支持后台运行了,这个方法用的较少,不像早期的时候,当用户点击home的时候,应用程序直接结束了,会调用这个方法,现在点击home后,应用程序转到后台处理

- (void)applicationWillResignActive:(UIApplication *)application

说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了

- (void)applicationDidBecomeActive:(UIApplication *)application

说明:当应用程序进入活动状态执行,这个刚好跟上面那个方法相反

- (void)applicationDidEnterBackground:(UIApplication *)application

说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可,比如用户按下home去去做别的事情,程序进入后台后可以在这个函数中保存一些数据,以便用户再次从后台打开应用时方便接着玩下去,

- (void)applicationWillEnterForeground:(UIApplication *)application

说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。

讲解了上面的一些代理方法后,举些例子说明一下方法被调用的顺序

当用户点击图标后 调用

1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

2.  applicationDidBecomeActive  程序已经处于活跃状态了,

程序开着的情况下用户按了home后,程序进入后台调用

1.applicationWillResignActive

2.applicationDidEnterBackground

当用户从后台点击图标再次打开应用

1.applicationWillEnterForeground

2.applicationDidBecomeActive

提示:

在支持后台执行的程序中,applicationDidEnterBackground:替代了applicationWillTerminate:作为程序快照保存的事件.(现在应用基本都支持后台执行了)

时间: 2024-11-26 07:18:36

iphone应用程序生命周期浅析的相关文章

[转]iOS应用程序生命周期(前后台切换,应用的各种状态)详解

转载地址:http://blog.csdn.net/totogo2010/article/details/8048652 iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验. //开发app,我们要遵循apple公司的一些指导原则,原则如下: 1.应用程序的状态 状态如下: Not running

20150629_UI之应用程序生命周期及UI开源学习网址

http://code4app.com学习UI网址 创建第一个IOS应用程序的时候,我们一般创建一个IOS的single view application,程序的入口仍然是main函数,在main函数里调用了UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));这个方法会去调用我们的代理类,使代理类去执行我们的代码 // // main.m // IOS150629_UI_应用程序生命周期 // //

Android之Activity生命周期浅析(一)

??Activity作为四大组件之一,出现的频率相当高,基本上我们在android的各个地方都能看见它的踪影,因此深入了解Activity,对于开发高质量应用程序是很有帮助的.今天我们就来详细地聊聊Activity的生命周期,以便我们在以后的开发中能如鱼得水. 一.初识Activity ??在日常应用中Activity是与用户交互的接口,它提供了一个用户完成相关操作的窗口.当我们在开发中创建Activity后,通过调用setContentView(View)方法来给该Activity指定一个布局

转:iOS应用程序生命周期(前后台切换,应用的各种状态)详解

iOS应用程序生命周期(前后台切换,应用的各种状态)详解 分类: iOS开发进阶2012-10-08 15:35 42691人阅读 评论(30) 收藏 举报 iosapplication任务animationtimerxcode 目录(?)[+] iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验.

asp.net应用程序生命周期和asp.net网页的生命周期

一.asp.net应用程序生命周期 asp.net应用程序生命周期以浏览器向web服务器(比如IIS服务器)发送请求为起点,先后经历web服务器下的ISAPI(Internet Server Application Programming Interface)扩展接收到应用程序的第一个请求并创建一个应用程序域,为每个请求创建ASP.NET核心对象(如HttpContext.HttpRequest.HttpResponse),将HttpApplication对象分配给请求(即通过创建HttpApp

asp.net应用程序生命周期

HTTP 模块ASP.NET 应用程序生命周期可通过 IHttpModule 类进行扩展.ASP.NET 包含若干实现 IHttpModule 的类,如 SessionStateModule 类.您还可以自行创建实现 IHttpModule 的类. 原文

Asp.Net的应用程序生命周期概述

参考文献: MSDN:Asp.Net应用程序生命周期 博客:选择HttpHandler还是HttpModule?

BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第8章节--配送SP2013Apps 应用程序生命周期

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第8章节--配送SP2013Apps 应用程序生命周期 你在商店拥有一个应用程序后,跟踪任何人们碰到的问题并发布更新以添加新功能,或者更改任何问题是非常重要的.任何生态系统中,一个流行的应用程序经常有负责人的开发人员,帮助客户解决问题,并发布更新更正常见问题.另外,客户喜欢购买应用程序,并希望看到随着日常更新和功能增强带来的价值增加.

应用程序生命周期的基本方法的转换

Android中生命周期方法有OnCreate().OnStart().OnReStart().OnReSume().OnPause().OnStop().OnDestroy(),一下是Activity的状态转换时相对应执行的方法的转换图 应用程序生命周期的基本方法的转换,布布扣,bubuko.com