iOS App生命周期及AppDelegate方法

一、APP的生命状态:

  • Not running(未运行):程序未运行
  • Inactive(未激活):程序在前台运行,但没有接收到事件。在没有事件处理情况下程序通常停留在这个状态。
  • Active ( 激活 ): 程序在前台运行而且接收到了事件。这也是前台的一个正常的模式。
  • Backgroud ( 后台 ): 程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态。
  • Suspended ( 挂起 ): 程序在后台但是却不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在 内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

二、 关于app生命周期中的各方法的调用顺序

func applicationDidBecomeActive(UIApplication)
// app已经被激活

func applicationWillResignActive(UIApplication)
// app即将被挂起

func applicationDidEnterBackground(UIApplication)
// app已经进入后台

func applicationWillEnterForeground(UIApplication)
// app即将回到前台

func applicationWillTerminate(UIApplication)
// app即将被杀死
App运行过程中 状态变化 对应的方法
  • 启动app:
application(_:willFinishLaunchingWithOptions:)
application(_:didFinishLaunchingWithOptions:)
applicationDidBecomeActive(UIApplication)
application:didReceiveRemoteNotification//接受处理消息通知
  • 双击home键使app上移挂起
applicationWillResignActive(UIApplication)
  • 再次双击home键使app下移归位
applicationDidBecomeActive(UIApplication)
  • 单击home键使app进入后台
applicationWillResignActive(UIApplication)
applicationDidEnterBackground(UIApplication)
  • 打开正运行在后台的app
applicationWillEnterForeground(UIApplication)
applicationDidBecomeActive(UIApplication)
  • 再次切到后台
applicationWillResignActive(UIApplication)
applicationDidEnterBackground(UIApplication)
  • 点击通知中心里面的远程推送,使App从后台 进入前台
applicationWillEnterForeground(UIApplication)
application:didReceiveRemoteNotification // 接收、处理消息通知
applicationDidBecomeActive(UIApplication)
  • 杀死App进程(终止程序)
applicationWillTerminate(UIApplication)
  • 从APP切换到微信之类的其他应用之后,再切换回来时
applicationWillEnterForeground(UIApplication)
application:openURL:sourceApplication // 应用间传值
applicationDidBecomeActive(UIApplication)

UIApplicationDelegate里面最常用的几个函数执行顺序小结

原文地址:https://www.cnblogs.com/Jamwong/p/12347288.html

时间: 2024-11-07 03:53:31

iOS App生命周期及AppDelegate方法的相关文章

iOS APP 生命周期

官方文档: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html#//apple_ref/doc/uid/TP40007072-CH2-SW1 基本要点: 一 入口函数为main函数,一般不需要更改: 发散点:看main函数,可以注意到加上了@autoreleasepool. 实际上如

iOS 开发学习之 User Interface(1)APP 生命周期

一,APP 生命周期 OC的学习在Fundation框架下,UI阶段的学习在触摸层(Cocoa Touch Layer)下的UIKit框架下(Cocoa:是OS X 和iOS 操作系统的程序运行环境). 应用程序入口 *** main函数: int UIApplicationMain(int argc,char *argv[], NSString *principalClassName,NSString *delegateClassName); // argc, argv 由main函数传递给U

iOS对UIViewController生命周期和属性方法的解析

目录[-] iOS对UIViewController生命周期和属性方法的解析 一.引言 二.UIViewController的生命周期 三.从storyBoard加载UIViewController实例的传值陷阱 四.UIViewController与StroyBoard的相关相互方法 1.ViewController直接在StoryBoard中进行跳转的传值 2.使用代码跳转Storyboard中的controller 五.UIViewController之间的一些从属关系 1.parentV

【iOS开发】iOS对UIViewController生命周期和属性方法的解析

iOS对UIViewController生命周期和属性方法的解析 一.引言 作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的View层上.iOS中的UIViewController是UIKit框架中最基本的一个类.从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础.基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑.这篇博客,旨在讨论UIV

图解ios程序生命周期

图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate中实现app状态变化时的回调函数,在 app状态发生变化时,系统会执行相应回调: - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

IOS的生命周期问题

开发Android必须得清楚Android生命周期才能很好的掌控程序的框架,让整个项目思路更加清晰流畅,因此IOS也是必须要了解IOS的生命周期 先从一个简单的实例来看看 AppDelegate.m文件里面的内容如下: // // AppDelegate.m // SwitchView // // Created by Pishum on 15/5/5. // Copyright (c) 2015年 Pishum. All rights reserved. // #import "AppDele

IOS ViewController生命周期

ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调. 在IOS中,有两类ViewController,一类是显示内容的,比如UIViewController.UITableViewController等,同时还可以自定义继承自UIViewController的Vi

View Controller 生命周期的各个方法的用法

View Controller 生命周期的各个方法的用法 (2012-07-14 15:09:07) 转载 ▼ 分类: ios 正文开始 - (void)awakeFromNib; 这个方法用的时候,outlet还没有连接起来,是view Controller刚从storyboard建的时候,没有完全建好,不过可能有一些事情要在这个方法里面完成,比如splitViewDelegate,需要在非常早期完成. - (void)viewDidLoad; 用这个的时候,ViewController已经完

iOS界面生命周期过程详解

开发过Android的人都知道,每一个Android界面就是一个Activity,而每一个Activity都会有自己的生命周期, 有一系列方法会控制Activity的生命周期,如:onCreate(),onStart(),onResume(),onDestroy()等等.在iOS中,也会有这样的流程控制.这篇博客先来讨论一个iOS应用的控制流程. 在新创建的一个程序中会有一个AppDelegate.swift文件,里面包含的一系列方法体现了iOS的控制流程.下面是系统自己生成的代码,我们来感受一