ios The App Life Cycle

 

先推荐ios 必读文章 App Programming Guide for iOS ,请在苹果官网搜索,并仔细阅读所有内容

 

State

Description

Not running

The app has not been launched or was running but was terminated by the system. 

Inactive

The app is running in the foreground but is currently not receiving events. (It may be executing other code though.) An app usually stays in this state only briefly as it transitions to a different state.

Active

The app is running in the foreground and is receiving events. This is the normal mode for foreground apps.

Background

The app is in the background and executing code. Most apps enter this state briefly on their way to being suspended. However, an app that requests extra execution time may remain in this state for a period of time. In addition, an app being launched directly into the background enters this state instead of the inactive state. For information about how to execute code while in the background, see Background Execution

Suspended

The app is in the background but is not executing code. The system moves apps to this state automatically and does not notify them before doing so. While suspended, an app remains in memory but does not execute any code.

When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.

 

注意这个图,程序进入background或者挂起了或者停止后,再次active前一定会经过inactive状态!

 

UIApplication.sharedApplication().applicationState 是UIApplicationState 类型,关于这个类型的说明如下:

An app may be active, inactive, or running in the background. You can use the value in this property to determine which of these states the app is currently in.

这里提到了应用程序运行中的3种状态,所以没有包含Not running 和 suspended 2个状态。

这里举一个inactive的状态的例子:

程序退到后台后,收到UILocalNotification ,点击通知消息对程序进行唤醒,调用

didReceiveLocalNotification方法时,得到的是UIApplicationState.Inactive状态。

原文地址:https://www.cnblogs.com/breezemist/p/4362902.html