【第22期】观点:IT 行业加班,到底有没有价值?

IOS应用程序的5中状态

原创 2015年07月08日 17:23:15

1. Not Running(非运行状态)。应用没有运行或被系统终止。

2. Inactive(前台非活动状态)。应用正在进入前台状态,但是还不能接受事件处理。

3.Active(前台活动状态)。应用进入前台状态,能接受事件处理。

4.Background(后台状态)。应用进入后台后,依然能够执行代码。如果有可执行的代码,就会执行代码,如果没有可执行的代码或者将可执行的代码执行完毕,应用会马上进入挂起状态。

5. Suspended(挂起状态)。处于挂起的应用进入一种“冷冻”状态,不能执行代码。如果系统内存不够,应用会被终止。

在应用状态跃迁的过程中,iOS系统会回调AppDelegate中的一些方法,并且发送一些通知。实际上,在应用的生命周期中用到的方法和通知很多,

状态跃迁过程中应用回调的方法和本地通知

application:didFinishLaunchingWithOptions:
UIApplicationDidFinishLaunchingNotification

应用启动并进行初始化时会调用该方法并发出通知。这个阶段会实例化根视图控制器

applicationDidBecomeActive:
UIApplicationDidBecomeActiveNotification

应用进入前台并处于活动状态时调用该方法并发出通知。这个阶段可以恢复UI的状态(例如游戏状态等)

applicationWillResignActive:    
UIApplicationWillResignActiveNotification   

应用从活动状态进入到非活动状态时调用该方法并发出通知。这个阶段可以保存UI的状态(例如游戏状态等)

applicationDidEnterBackground:
UIApplicationDidEnterBackgroundNotification

应用进入后台时调用该方法并发出通知。这个阶段可以保存用户数据,释放一些资源(例如释放数据库资源等)

applicationWillEnterForeground:
UIApplicationWillEnterForegroundNotification

应用进入到前台,但是还没有处于活动状态时调用该方法并发出通知。这个阶段可以恢复用户数据

applicationWillTerminate:
UIApplicationWillTerminateNotification

应用被终止时调用该方法并发出通知,但内存清除时除外。这个阶段释放一些资源,也可以保存用户数据

为了便于观察应用程序的运行状态,我们为AppDelegate.m中的方法添加一些日志输出,具体代码如下:

@implementation AppDelegate



- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"%@", @"application: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:");
}
@end
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

iOS应用程序状态切换相关

一、iOS应用程序状态机一共有五种状态: 1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。 2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或...

iOS应用程序状态切换相关

原文出处: http://blog.csdn.net/duanyipeng/article/details/7101829

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

iOS应用程序状态切换相关

一、iOS应用程序状态机一共有五种状态: 1. Not running:应用还没有启动,或者应用正在运行但是途中被系统停止。 2. Inactive:当前应用正在前台运行,但是并不接收事件(当前或...

ios应用程序间互相启动

受限与iOS系统的运行机制,绝大多数情况下一个应用在进入后台后会马上进入suspend或terminate状态,也就是说不能执行代码,iOS中也没有类似

iOS应用程序的状态及其切换(生命周期)

应用状态切换
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)