iOS App的生命周期

11 篇文章 0 订阅
//控制器声明周期

//最先执行的方法,控制器关联的有Nib文件的时候,该方法会从Nib文件加载view。
-(void)loadView{
    [super loadView];
    
    NSLog(@"%s", __FUNCTION__);
}

//该方法可以用来可以用来初始化控件、也可进行异步的网络请求,该方法在页面出来之前调用,方法在执行结束后,页面才会出现。因此该方法里面不能用来执行耗时的主线程操作。该方法在控制器的整个生命周期中只会调用一次。
- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSLog(@"%s", __FUNCTION__);
    
    self.view.backgroundColor = [UIColor redColor];

}

//该方法在页面每次出现之前调用,所以该方法可能会调用多次。
-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    
    NSLog(@"%s", __FUNCTION__);
}

//该方法在将要布局子控件的时候调用,每次当视图的bounds改变时将会调用。
-(void)viewWillLayoutSubviews{
    [super viewWillLayoutSubviews];
    
    NSLog(@"%s", __FUNCTION__);
}

//该方法在子控件布局完成后调用
-(void)viewDidLayoutSubviews{
    [super viewDidLayoutSubviews];
    
    NSLog(@"%s", __FUNCTION__);

}

//该方法在页面显示完成之后条用,有一些需要再页面展示出来后执行的代码可以放在该方法中。
-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    
    NSLog(@"%s", __FUNCTION__);

}

//该方法在页面即将消失的时候调用,有时候一些通知的移除等操作可以在这个方法里面执行
-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    
    NSLog(@"%s", __FUNCTION__);

}

-(void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
}
//收到内存警告时调用该方法,可用来执行释放资源、内存等
-(void)didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];
    
    NSLog(@"%s", __FUNCTION__);

}

@end



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

//       ** 你可以把程序载入后执行的代码,写在程序完成加载的方法里面,这是最常用的一个方法

        print("1111>>>>>>>>>>>>>>>>>>>>>> --  didFinishLaunchingWithOptions")

        return true

    }

    func applicationWillResignActive(_ application: UIApplication) {

        //当应用程序即将从活动状态转移到非活动状态时发送。这可以发生在某些类型的临时中断(例如来电或SMS消息)或当用户退出应用程序并开始转换到后台状态时。

        //使用此方法暂停正在进行的任务,禁用定时器,并使图形呈现回调无效。游戏应该用这个方法暂停游戏。

//        **当程序进入到非活动状态时,调用此方法,在此期间,程序不会接受消息和事件

        

        print("3333333333>>>>>>>>>>>>>>>>>>>>>> --  applicationWillResignActive")

    }



    func applicationDidEnterBackground(_ application: UIApplication) {

        //使用此方法释放共享资源,保存用户数据,使定时器失效,并存储足够的应用程序状态信息,以便在以后终止应用程序时将应用程序恢复到当前状态。

        //如果应用程序支持后台执行,则当用户退出时调用此方法而不是applicationWillTerminate。

//        **当程序被推到后台时,调用户此方法,如果要设置后台继续某些动作,则在这个方法里添加代码即可

        print("444444444>>>>>>>>>>>>>>>>>>>>>> --  applicationDidEnterBackground")

    }



    func applicationWillEnterForeground(_ application: UIApplication) {

        //作为从后台到活动状态的转换的一部分调用;在这里可以撤消在进入后台时所做的许多更改。

        

//        **当程序从后台,将要重新回到前台的时候,调用此方法

        

        print("555555555>>>>>>>>>>>>>>>>>>>>>> --  applicationWillEnterForeground")

    }



    func applicationDidBecomeActive(_ application: UIApplication) {

         //重新启动的任何任务,是paused(或没有开始应用),当这是不活动的。如果我此前的应用背景,optionally refresh的用户界面。

        

//        ***当程序进入活动状态的时候调用此方法

        print("222222222>>>>>>>>>>>>>>>>>>>>>> --  applicationDidBecomeActive")

}



    func applicationWillTerminate(_ application: UIApplication) {

        //当应用程序即将终止时调用。保存数据,如果合适的话。参见ApdioDestEntudio背景:

//        **当程序退出时调用此方法,通常用来保存数据,和一些推出前的清理工作

        print("6666666>>>>>>>>>>>>>>>>>>>>>> --  applicationWillTerminate")



    }
//当应用程序启动时执行,应用程序启动入口,只在应用程序启动时执行一次。若用户直接启动,lauchOptions内无数据,若通过其他方式启动,lauchOptions包含对应方式的内容。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    NSLog(@"iOS_didFinishLaunchingWithOptions");
    
  return YES;
}
  
//最后清除角标(进入后台)
//在应用程序已进入后台程序时,要执行的委托调用
- (void)applicationDidEnterBackground:(UIApplication *)application {

  NSLog(@"iOS_applicationDidEnterBackground");
}
  
//(即将进入前台)
//在应用程序将要进入前台时(被激活),要执行的委托调用,刚好与applicationWillResignActive 方法相对应。
- (void)applicationWillEnterForeground:(UIApplication *)application {

    NSLog(@"iOS_applicationWillEnterForeground");
}
 
//手机即将切换状态(即将进入后台)
//在应用程序将要由活动状态切换到非活动状态时候,要执行的委托调用,如 按下 home 按钮,返回主屏幕,或全屏之间切换应用程序等。
- (void)applicationWillResignActive:(UIApplication *)application {

    NSLog(@"iOS_applicationWillResignActive");
}

//从切换状态回到前台(回到前台)
//在应用程序已被激活后,要执行的委托调用,刚好与applicationDidEnterBackground 方法相对应。
- (void)applicationDidBecomeActive:(UIApplication *)application {

    NSLog(@"iOS_applicationDidBecomeActive");
}

/** 程序被杀死
 在应用程序要完全推出的时候,要执行的委托调用,这个需要要设置UIApplicationExitsOnSuspend的键值。
 */
- (void)applicationWillTerminate:(UIApplication *)application {

    NSLog(@"iOS_applicationWillTerminate");
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值