美文网首页
AppDelegate

AppDelegate

作者: star_night | 来源:发表于2017-07-14 16:17 被阅读0次

    AppDelegate为整个应用的一个代理,提供程序启动、退出等类似监控的接口。

    IOS AppDelegate方法全解


    1.当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电
        - (void)applicationWillResignActive:(UIApplication *)application
    
        {
    
            NSLog(@"应用程序将要进入非活动状态,即将进入后台");
    
        }
    
    2.应用程序已经进入后台运行
        - (void)applicationDidEnterBackground:(UIApplication *)application
    
        {
    
            NSLog(@"如果应用程序支持后台运行,则应用程序已经进入后台运行"); //如果需要退出后台,则在这里加上:exit(0);
    
        }
    
    3.应用程序将要进入活动状态执行
        - (void)applicationWillEnterForeground:(UIApplication *)application
    
        {
    
            NSLog(@"应用程序将要进入活动状态,即将进入前台运行");
    
        }
    
    4.应用程序已经进入活动状态
        - (void)applicationDidBecomeActive:(UIApplication *)application
    
        {
    
            NSLog(@"应用程序已进入前台,处于活动状态");
    
        }
    
    5.应用程序将要退出,通常用于保存数据和一些退出前的清理工作
        - (void)applicationWillTerminate:(UIApplication *)application
    
        {
    
            NSLog(@"应用程序将要退出,通常用于保存数据和一些退出前的清理工作");
    
        }
    
    6.当设备为应用程序分配了太多的内存,操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作,防止程序被终止
        -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application
    
        {
    
            NSLog(@"系统内存不足,需要进行清理工作");
    
        }
    
    7.当系统时间发生改变时执行
        -(void)applicationSignificantTimeChange:(UIApplication *)application
    
        {
    
            NSLog(@"当系统时间发生改变时执行");
    
        }
    
    8.推送消息时,获取设备的tokenid
        -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
    
        {
    
            NSLog(@"%@",deviceToken);
    
        }
    
    9.tokenid获取失败时,做相应处理
        - (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
    
        {
    
            NSLog(@"fail to register for remoteNotifications: %@", [err description]);
    
        }
    
    10.接收到推送消息处理
        - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    
            //设置icon上的标记数字设置为0;
    
            //application.applicationIconBadgeNumber = 0;
    
            NSLog(@"%@",userInfo);
    
        }
    
    11.当程序载入后执行
        -(void)applicationDidFinishLaunching:(UIApplication *)application
    
        {
    
            NSLog(@"当程序载入后执行");
    
        }
    

    系统启动代理
    //创建UIWindos
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    //初始化应用系统需要显示的第一个页面  
    ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    //配置window窗口的rootViewController实例
    self.window.rootViewController = vc;
     
    [self.window makeKeyAndVisible];  
    return YES; 
    

    @implementation AppDelegate
    
    /**
    *  app启动完毕后就会调用
    *  在启动图标消失后进入该方法,并且程序进入后台后,再次进入时不再调用
    */
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
       NSLog(@"程序已经启动...");
       return YES;
    }
    
    /**
    *  程序失去焦点后执行,一般数据保存操作在这里执行
    */
    - (void)applicationWillResignActive:(UIApplication *)application {
       NSLog(@"程序将要失去焦点...");
    }
    
    /**
    *  app进入后台的时候调用 注意:进入后台时先失去焦点再进入后台
    */
    - (void)applicationDidEnterBackground:(UIApplication *)application {
       NSLog(@"程序已经进入后台...");
    }
    
    /**
    *  app进入前台的时候调用
    */
    - (void)applicationWillEnterForeground:(UIApplication *)application {
       NSLog(@"程序将要进入前台...");
    }
    
    /**
    *  程序被激活(获得焦点)后执行 注意:先进入前台再获取焦点<span style="font-family: Arial, Helvetica, sans-serif;">,一般数据恢复操作在这里执行</span>
    */
    - (void)applicationDidBecomeActive:(UIApplication *)application {
       NSLog(@"程序已经获得焦点...");
    }
    
    /**
    *  程序终止时执行
    */
    - (void)applicationWillTerminate:(UIApplication *)application {
       NSLog(@"程序将要终止...");
    }
    
    /**
    *  清除不需要再使用的内存
    */
    -(void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
       NSLog(@"applicationDidReceiveMemoryWarning");
    }
    
    @end
    

    相关文章

      网友评论

          本文标题:AppDelegate

          本文链接:https://www.haomeiwen.com/subject/mwlnhxtx.html