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 【查看和更改您的应用程序的状态和可用性】

当您的应用程序在商店中可用时,其状态为“准备出售”。下面就来说一下几种上架时候可能会遇到的状态。...
  • Felicity294250051
  • Felicity294250051
  • 2018年01月08日 09:19
  • 238

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

应用状态切换
  • u011342466
  • u011342466
  • 2015年12月30日 12:34
  • 476

iOS应用程序的状态:

iOS应用程序的状态: 1.not running (应用程序没有被启动, 或者刚被系统关闭) 2.inactive (应用程序在前台运行但是不接受事件) 3.active (...
  • deep_explore
  • deep_explore
  • 2012年08月08日 15:22
  • 379

应用程序的状态 iOS

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受...
  • Gaizka_gaozhao
  • Gaizka_gaozhao
  • 2016年10月31日 11:45
  • 132

进程的5中状态

http://zhidao.baidu.com/question/280058767.html 在五状态进程模型中,进程状态被分成下列五种状态。进程在运行过程中主要是在就绪、运行和阻塞三种状态间进行...
  • helonSY
  • helonSY
  • 2012年01月30日 10:07
  • 6154

iOS - 应用程序的几种状态

1.Not running     未运行        程序没启动 2.Inactive           未激活        程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常...
  • dylan_lwb_
  • dylan_lwb_
  • 2014年09月24日 14:17
  • 506

如何在Tomcat5.5中配置Datasource,连接到mysql

第一步:      下载mysql-connector-java-5.0.4.zip,放到%catalina_home%/common/lib中,也可以放到你的web程序的web-inf/lib中。第...
  • tcpipokokok
  • tcpipokokok
  • 2007年01月17日 22:26
  • 803

iOS 通知处理,当应用未激活时

如果当前app处于活动状态,走didReceiveRemoteNotification方法处理;如果是从通知中心进来,在 - (BOOL)application:(UIApplication *)a...
  • yrx1004
  • yrx1004
  • 2015年10月28日 14:18
  • 297

此应用程序当前处于脱机状态

此应用程序当前处于脱机状态 简介:此应用程序当前处于脱机状态。要启用该应用程序,请从应用程序根目录 删除 app_offline.htm 文件。如图: 解决方案:从应用程序根目录 删除 app...
  • pengzhen8805
  • pengzhen8805
  • 2016年07月15日 10:22
  • 1515

iOS按钮各个状态浅析

1.UIControlStateNormal 除了Highlighted,Disabled和Selected这三种状态以外,按钮始终处于Normal状态。 此时Normal状态的按钮是可以点击并且...
  • qq_25591667
  • qq_25591667
  • 2016年10月30日 17:03
  • 1053
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS应用程序的5中状态
举报原因:
原因补充:

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