应用的生命周期

原创 2016年08月29日 19:49:22

/*

应用程序的声明周期

Appdelegata作为应用程序的对象,Appdelegata类在应用的生命周期的不同阶段会回调不同的方法


此类本身没有任何的功能代码,它的作用就是实现了UIApplication和ios操作系统之间的协议。该协议的方法

就是UIApplication在操作系统中的各种状态


iOS的应用的5种状态

Not running(非运行状态) 应用没有运行或者被系统终止

Inactive(前台非活跃状态) 应用进入前台状态,但是还不能接收时间处理

Active(前台活跃状态) 应用进入前台状态,能接收事件处理

Background(后台状态) 应用进入后台状态,依然能够执行代码。如果有可以执行的代码,就会执行代码。

如果没有可以执行的代码或者可执行的代码执行完毕,应用就马上进入挂起状态

Suspended(挂起状态) 应用进入一种“冷冻”状态,不能执行代码。如果系统的内存不足,应用会被终止


*/


#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

//应用启动并进入初始化的时候会调该方法,并发出通知。这个阶段会初始化跟视图控制器

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"应用启动并进行初始化");
    self.window =[[UIWindow alloc]init];
    self.window.frame =[UIScreen mainScreen].bounds;
    self.window.backgroundColor =[UIColor yellowColor];
    
    //是当前的窗口作为主窗口并显示在屏幕前端
    [self.window makeKeyAndVisible];
    
  //  self.window.rootViewController = [[ViewController alloc]init];
    //切换根视图,让aViewContraller作为根视图控制器
    
    //self.window.rootViewController =[[AViewController alloc]init];
    
    
    //切换根视图,让bVC作为根视图控制器
    BViewController *bVC =[[BViewController alloc]initWithNibName:@"BViewcontroller" bundle:[NSBundle mainBundle]];
    self.window.rootViewController =bVC;
    
    return YES;
}



//应用从活跃状态到非活跃状态时调用该方法并发出通知。这个阶段可以保存UI状态

- (void)applicationWillResignActive:(UIApplication *)application {
    
     NSLog(@"活跃状态到非活跃状态");
}

//应用进入后台时调用该方法并发出通知。这个阶段可以保持用户数据,释放一些资源

- (void)applicationDidEnterBackground:(UIApplication *)application {
        NSLog(@"应用进入后台");
}

//应用进入前台,但是还没处于活跃状态调用该方法并发送通知。这个阶段可以恢复用户数据

- (void)applicationWillEnterForeground:(UIApplication *)application {
         NSLog(@"应用进入前台,并处于非活跃状态");
}

//应用进入前台,并处于活跃状态时调用该方法并发出通知,这个阶段可以保存UI状态

- (void)applicationDidBecomeActive:(UIApplication *)application {
    
     NSLog(@"应用进入前台,并处于活跃状态");
}
//应用终止时调用该方法并发出通知
- (void)applicationWillTerminate:(UIApplication *)application {
    
    NSLog(@"应用终止");
}

@end


#import <UIKit/UIKit.h>
#import "AppDelegate.h"


int main(int argc, char * argv[]) {
    @autoreleasepool {
        
        /*
        
         argc,argv是C标准main函数的参数,直接传递给UIApplicationMain进行相关处理即可;
         
         principalClassName:指定应用程序类,该类必须是UIApplication类或其子类。如果为nil,则用UIApplication类作为默认值
         
         delegateClassName:指定应用程序类的代理类,该类必须遵循UIApplicationDelegate协议,此函数会根据principalClassName创建UIApplication对象,根据delegateClassName创建一个delegate对象,并将该delegate对象赋值给UIApplication对象中的delegate属性。UIApplication对象会依次给delegate对象发送不同的消息,接着会创建应用程序的main runloop(事件循环),进行事件的处理(首先会调用delegate对象的
         
         application:didFinishLaunchingWithOptions : ) 程序正常退出时这个函数才返回。
         UIApplication 对象管理事件循环和高层的应用行为
         应用委托是应用的核心,该对象与UIApplication对象联合起来负责对应用的初始化过程、状态迁移过程和很多高层的应用事件进行处理
         
         */
        
        
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
        
        

}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android应用程序的生命周期

大家都知道,Android可以同时运行多个应用并且支持互相之间的切换,这是因为Android是基于Linux的多用户、多任务的操作系统,Android应用的启动与执行同样也是基于Linux进程的。Li...
  • u014738140
  • u014738140
  • 2016年01月22日 13:33
  • 1345

Android中activity的生命周期以及使用场景

#1完整生命周期代码如下。 package com.wzw.lifecycle; import android.app.Activity; import android.content.Inten...
  • ibey0nd
  • ibey0nd
  • 2014年07月29日 17:09
  • 918

web开发中web对象影响范围和生命周期

一、 影响范围与生命周期划分WEB是基于HTTP协议的,HTTP协议是无状态的。无状态是指无法直接通过HTTP连接的相关属性来鉴别用户状态。但实际上的WEB应用通常是需要以用户会话的形式来支撑业务运行...
  • fengzijinliang
  • fengzijinliang
  • 2016年07月06日 11:04
  • 588

移动开发的软件开发生命周期介绍(一)

Introduction to the Mobile Software Development Lifecycle --移动开发的软件开发生命周期介绍   凡例:标题翻译不另起行,以“--”起头,段落...
  • jhycjhyc
  • jhycjhyc
  • 2015年09月13日 22:12
  • 1305

Android应用程序的生命周期

描述:程序的生命周期是在Android系统中进程从启动到终止的所有阶段,也就是Android从启动到停止的全过程。==程序的生命周期是由Android系统进行调度和控制的。 ① 程序生命周期 ...
  • G1036583997
  • G1036583997
  • 2014年03月07日 14:48
  • 8097

6)Win10-UWA开发 应用生命周期

孙广东   2015.8.24本主题介绍了 Windows 运行时应用的生命周期,从部署它一直到删除它。通过正确地启动、挂起和恢复你的应用,可确保客户拥有最佳应用体验。应用执行状态此图表现了应用执行状...
  • u010019717
  • u010019717
  • 2015年08月26日 08:22
  • 1892

Activity生命周期交互设计思想和应用场景(附源码)

Activity生命周期交互设计思想 1.在多个Activity进行交互的时候,为什么要先暂停(onPause()方法)当前的Activity,执行新的Activity的onCreate()方法...
  • u014225510
  • u014225510
  • 2015年08月02日 15:31
  • 664

软件开发生命周期详解

软件生命周期((Systems Development Life Cycle,SDLC) 目录 1 什么是软件生命周期2 软件生命周期的七个阶段3 软件生命周期的模型4...
  • xieyihua1994
  • xieyihua1994
  • 2016年10月17日 10:46
  • 6116

深入剖析Android四大组件(一)——Activity生命周期详解

虽然如此,但即使你没有实现onSaveInstanceState()方法,也还是有一些Activity的状态通过Activity类默认实现的onSaveInstanceState()方法恢复。特别是,...
  • liyuanjinglyj
  • liyuanjinglyj
  • 2015年07月25日 19:37
  • 2994

Servlet第六篇【Session介绍、API、生命周期、应用】

什么是Session Session 是另一种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务器把用户的信息以某种的形式...
  • hon_3y
  • hon_3y
  • 2017年01月31日 15:50
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:应用的生命周期
举报原因:
原因补充:

(最多只允许输入30个字)