zoukankan      html  css  js  c++  java
  • appDelegate中的委托协议方法以及使用观察者模式获取其触发方法



    //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电  
    - (void)applicationWillResignActive:(UIApplication *)application  
    {  
        NSLog(@"应用程序将要进入非活动状态,即将进入后台");  
    }  
      
    //应用程序已经进入后台运行  
    - (void)applicationDidEnterBackground:(UIApplication *)application  
    {  
        NSLog(@"如果应用程序支持后台运行,则应用程序已经进入后台运行");  
    如果需要退出后台,则在这里加上:exit(0);
    }  
      
    //应用程序将要进入活动状态执行  
    - (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(@"当程序载入后执行");  
    }  

    介绍完appdelegate中的方法后,回到我想说的地方

    如果在一个viewcontroller中触发了这些方法(比如按home键盘,此程序会进入后台,触发

    applicationWillResignActive、
    applicationDidEnterBackground

    方法),这时候我们不可能在回到appdelegate中写逻辑处理,所以,我们可以用观察者模式来处理这个问题:

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
       
        [[NSNotificationCenter defaultCenter]addObserver:self
                                                selector:@selector(AA)
                                                    name:UIApplicationDidFinishLaunchingNotification
                                                  object:nil];
    }

    这里接受到的name可以有很多:

    UIApplicationDidFinishLaunchingNotification

    UIApplicationDidEnterBackgroundNotification

    ....appdelegate中对应的方法都有

  • 相关阅读:
    Day22:异常处理、socke基于TCP协议编程
    Day21:面向对象的软件开发、反射、对象的内置方法
    Day20:绑定方法与非绑定办法、多态和多态性
    Day19:继承实现的原理、子类中调用父类的方法、封装
    Day18:类的抽象、类的组合应用
    Day17:类的继承、派生、组合和接口
    Day16:面向对象编程——类和对象
    数据结构
    python爬虫篇之 性能相关
    scrapy-redis
  • 原文地址:https://www.cnblogs.com/niit-soft-518/p/4597550.html
Copyright © 2011-2022 走看看