• 应用程序的生命周期:appdelegate每个方法的介绍


    一。appdelegate每个方法的简单介绍:
     
    1、应用程序启动,并进行初始化时候调用该方法:aaaplication:didFimnishLanuchingWithOptions:
     
    2、应用进入前台并处于活动状态时候调用:applicationDidBecomeActive:
     
    3、应用从活动状态进入到非活动状态:applicationWillResignActive :
     
    4、应用进入到后台时候调用的方法:applicationDidEnterBackground:
     
    5、应用进入到前台时候调用的方法:appplicationWillEnterForeground:
     
    6、applicationWillTeminate:应用被终止的状态:
     
    二。配合场景,什么时候会调用上面的什么组合
     
    第一种场景:程序开启,到能使用;
     
    就是:没有运行(NOT RUNNING)------->没有激活(INACTIVE) ------>激活( ACTIVE)
    这个过程会调用的方法和发出的通知有:
     
    过程1:没有运行(NOT RUNNING)------->没有激活(INACTIVE);
    这个过程会调用aaaplication:didFimnishLanuchingWithOptions:方法,发出UIApplicationDidFinishLaunchingNotification通知;
     
    过程2:没有激活(INACTIVE) ------>激活( ACTIVE)
    这个过程会调用applicationDidBecomeActive:方法,发出UIApplicationDidBecomeActiveNOtification通知;
    附上一个简单的图:
    总结:
    1.从这个过程我们就知道,appdelegate的每个方法会对应一个通知,没当调用那个方法的时候,就会发出那个方法对应的通知;
    2.下面的几个场景,我就不一一说明,直接贴图了;
    3.再贴图之前,先把appdelegate每个方法对应的通知都贴出来;
    方法 本地通知
    aaaplication:didFimnishLanuchingWithOptions: UIApplicationDidFinishLaunchingNotification
    applicationDidBecomeActive UIApplicationDidBecomeActiveNOtification
    applicationWillResignActive  UIApplicationWillResignActiveNotification
    applicationDidEnterBackground UIApplicationDidEnterBackgroundNotification
    appplicationWillEnterForeground UIApplicationwillEnterForegroundNotification
    applicationWillTeminate UIApplicationWillTeminateNotification
     
     
    第二种场景:点击Home键---程序挂起或者进入后台;(一种是退到后台,没有退出程序;一种是退到后台,且退出程序)
    这里分两种情况:
    情况1:点击home键,退到后台挂起(默认情况);注意:挂起状态会占用内存;
     
    情况2:点击home键之后,退到后台,直接终止;
    注意:默认的情况下,程序进入后台是不会终止程序的;如果要做到可以退出程序,到plist文件修改一下的值:
    找到Application does not run in backgroud设置为yes,在文件中保存的键应该是UIApplicationExitsOnSuspend设置为Yes。
     
    第三种场景:挂起的程序重新运行
    注意:application:didFinishLaunchingWithOptions:这个方法只会在程序初始化的时候才会被调用,而且只调用一次;
    所以这里不会调用didFinishLaunchingWithOptions这个方法;
  • 相关阅读:
    TransformAroundPointPlugin
    探讨VMP 2.12.3 导入表修复
    spring+quartz 实现定时任务二
    一个奇怪的sql异常
    php程序里面使用sudo来执行应用程序
    spring+quartz 实现定时任务一
    让Git忽略SSL证书错误技巧
    个人开发网站集合
    完美解决KMplayer无法播放RMVB、RM电影问题
    如何知道自己的Windows是否已激活? 如何实现免激活升级? 重装Windows不需再激活?
  • 原文地址:https://www.cnblogs.com/williamliuwen/p/5366482.html
Copyright © 2020-2023  润新知