App 运行状态

App 运行状态

IOS中AppDelegate中的生命周期事件的调用条件:

//当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电

  • (void)applicationWillResignActive:(UIApplication *)application
    {
    NSLog(@“应用程序将要进入非活动状态,即将进入后台”);
    }

//应用程序已经进入后台运行

  • (void)applicationDidEnterBackground:(UIApplication *)application
    {
    NSLog(@“如果应用程序支持后台运行,则应用程序已经进入后台运行”);
    }

//应用程序将要进入活动状态执行

  • (void)applicationWillEnterForeground:(UIApplication *)application
    {
    NSLog(@“应用程序将要进入活动状态,即将进入前台运行”);
    }

//应用程序已经进入活动状态

  • (void)applicationDidBecomeActive:(UIApplication *)application
    {
    NSLog(@“应用程序已进入前台,处于活动状态”);
    }

//应用程序将要退出,通常用于保存书架喝一些推出前的清理工作,

  • (void)applicationWillTerminate:(UIApplication *)application
    {
    NSLog(@“应用程序将要退出,通常用于保存书架喝一些推出前的清理工作”);
    }

//当设备为应用程序分配了太多的内存,操作系统会终止应用程序的运行,在终止前会执行这个方法
//通常可以在这里进行内存清理工作,防止程序被终止
-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
NSLog(@“系统内存不足,需要进行清理工作”);
}

//当系统时间发生改变时执行
-(void)applicationSignificantTimeChange:(UIApplication *)application
{
NSLog(@“当系统时间发生改变时执行”);
}

//当程序载入后执行
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
NSLog(@“当程序载入后执行”);
}

app 运行状态

typedef NS_ENUM(NSInteger, UIApplicationState) {
UIApplicationStateActive,
UIApplicationStateInactive,
UIApplicationStateBackground
} NS_ENUM_AVAILABLE_IOS(4_0);

当然,应用不在运行状态,不在考虑之列。只要应用运行起来了,存在以上三种状态。

1.UIApplicationStateActive
这个基本没什么疑问,应用在前台运行时就是这个状态。

2.UIApplicationStateInactive
待激活状。在应用运行状态下,可能引起这种状态的情况有
a.下接状态栏,看通知
b.双击home键,下面弹出任务运行栏
c.锁屏。应该程序也非后台状态。

3.UIApplicationStateBackground
应用在后台状。引起这种状态的情况有:
a.按home键
b.启动其它应用,把当前应用挤入后台。

iOS应用程序状态及互相切换

从这个示意图,我们可以看到哪些状态间是可以互相转化的。而在这些状态互相转化的同时,AppDelegate中对应的生命周期方法会被调用:

    • (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions 进程启动但还没完成初始化,这个方法是iOS6之后才有的
    • (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 程序将要退出

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值