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)
相关推荐
wwzaqw 2020-09-04
chensen 2020-11-14
lwnylslwnyls 2020-11-06
ATenhong 2020-10-15
yanzhelee 2020-10-13
佛系程序员J 2020-10-10
guojin0 2020-10-08
佛系程序员J 2020-10-08
bluewelkin 2020-09-16
zhongdaowendao 2020-09-02
favouriter 2020-08-18
奎因amp华洛 2020-08-15
一青年 2020-08-13
千锋 2020-08-10
nangongyanya 2020-08-09
dongxurr 2020-08-08
明天你好 2020-08-03
kyelu 2020-08-03
Ashes 2020-08-03