我是靠谱客的博主 舒服小懒猪,最近开发中收集的这篇文章主要介绍iOS应用程序生命周期问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先应该明确的是iOS程序的几种运行状态:

Not running  未运行  程序没启动
Inactive          未激活        程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态
Active             激活           程序在前台运行而且接收到了事件。这也是前台的一个正常的模式
Backgroud     后台           程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态
Suspended    挂起           程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

激活自然不用说,未激活是个什么东西?举例来说,按下home键,锁屏,拉下状态栏,进入控制中心等等都会进入未激活状态.这涉及到响应中断的问题,这里不做过多阐述


程序之间状态的切换如下图:




同时,对于不同的状态改变,iOS系统提供了相关的回调函数:

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- (void)applicationWillResignActive:(UIApplication *)application
- (void)applicationDidBecomeActive:(UIApplication *)application 
- (void)applicationDidEnterBackground:(UIApplication *)application
- (void)applicationWillEnterForeground:(UIApplication *)application
- (void)applicationWillTerminate:(UIApplication *)application
- (void)applicationDidFinishLaunching:(UIApplication*)application

对于面试中问到的关于声明周期的问题,能够将上述内容表达清楚便可以了.

涉及到包括应用程序启动/关闭流程,main函数的作用,程序中断和后台运行的问题可参照下列文章:


官方文档:https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW20

相关博文:http://blog.csdn.net/totogo2010/article/details/8048652



最后

以上就是舒服小懒猪为你收集整理的iOS应用程序生命周期问题的全部内容,希望文章能够帮你解决iOS应用程序生命周期问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部