美文网首页
iOS应用程序生命周期

iOS应用程序生命周期

作者: _我和你一样 | 来源:发表于2019-05-10 11:28 被阅读0次

iOS应用一共有5个状态:

  • 未运行 not running
  • 非活跃 inactive
  • 活跃 active
  • 后台 background
  • 挂起 suspended

用图表示就是

生命周期图

程序在活跃的时候会运行代码以及处理UI事件,在后台只能运行有限的时间不能处理UI事件。

切换应用时的生命状态

切换应用

当程序启动时,会从not running 状态,切换为 inactive状态

程序启动

此时程序代理会收到

func application(UIApplicaiton,will/didFinishLaunchingWithOptions:[UIApplicationLauchOptionKey:Any]?=nil)

你也可以观察UIApplicationDidFinishLaunching

传递过来的字典(也在通知的userInfo中)会告诉你程序启动的原因

比如:

  • 有人想要打开一个URL,比如打开PDF文件
  • 从其他设备接力
  • 通知唤醒
  • 蓝牙设备连接

当程序从活跃转为非活跃时

活跃转为非活跃

程序代理会收到

func applicationWIllResignActive(UIAppllication)

你也可以观察UIApplicationWillResignActive

你可能在需要在这里"暂停"你的UI,比如当电脑打进来时,停止音乐的播放。

当程序从非活跃转为活跃时

非活跃转为活跃

程序代理会收到

func applicationDidBecomeActive(UIApplication)

你也可以观察UIApplicationDiDBecomeActive

如果你之前“暂停”了UI,可以在这里取消暂停

当程序从非活跃转入后台时

非活跃转入后台

应用代理会收到

func applicationDidEnterBackground(UIApplication)

你也可以观察UIApplicationDidEnterBackupround

在这里程序还可以运行30s,但是你可以请求更多的时间。

当程序从后台转入非活跃时

后台进入非活跃

恭喜你,你的程序没有在后台被杀死,而且很快会进入活跃状态,应用代理会收到

func applicationWillEnterForeground(UIApplication)

你也可以观察UIApplicationWillEnterForeground

UIApplication

单例

在你的应用中有一个单例对象 let myApp - UIApplication.shared

它管理着全局行为,它代理的所有都在UIApplicationDelegate中

除此之外,它还有很多有用的功能:

用其他程序打开URL

func open(URL)
func canOpenURL(URL)->Bool

注册和接收通知

func (un)registerForRemoteNotifications()

通知,包括本地和远程,都已经被UNNotification 框架处理了。

设置后台获取的时间间隔

如果你想要在后台继续工作,你必须设置此项

func setMinimumBackgroundFetchInterval(TimeInterval)

你通常需要把这设置给UIApplicationBackgroundFetchIntervalMinmum

在后台时征求更多的时间

func beginBackgroundTask(withExpirationHandler:(()->Void)?)->UIBackupgroundTaskIdentifier

执行完成时,不要忘记调用endBackgroundTask(UIBackupgroundTaskIdentifier)

打开状态栏的网络指示图标

var isNetworkActivityIndicatorVisibal:Bool注意这只是一个布尔值,要小心使用

其他

var backgroundTimeRemaining:TimeInterval{get}//还有多久程序被挂起
var perferedContentSizeCategory:UIContentSizeCategory{get}//大字体还是小字体
var applicationState:UIApplicationState{get}//前台,后台,活跃

相关文章

  • 无标题文章

    开发应用程序都要了解其生命周期。 今天我们接触一下iOS应用程序的生命周期, iOS的入口在main.m文件:in...

  • iOS中应用和视图的生命周期

    iOS中应用和视图的生命周期 一. 应用的生命周期 在写前面 在iOS中,AppDelegate是应用程序的委托对...

  • 应用程序生命周期

    16/08/04/wed iOS应用程序生命周期 应用程序的状态 Not running :未运行,程序没有启动...

  • iOS面试题:生命周期

    1. 程序的生命周期 a. 程序的生命周期是指应用程序启动到应用程序结束整个阶段的全过程b.每一个IOS应用程序都...

  • 9.UIViewController的生命周期

    应用程序的生命周期: http://www.cocoachina.com/ios/20150623/12244.h...

  • IOS生命周期详解

    懂ios生命周期,让我们更好的投入到开发当中,让我们开发更加高效。 新建ios项目,我先开始从应用程序生命周期说起...

  • iOS应用程序状态

    iOS应用程序的生命周期是多种状态,各种状态之间可以互相切换,IOS的系统资源是有限的,应用程序在前台和后台的状态...

  • [Swift]iOS应用程序的状态

    iOS应用程序的生命周期包含了5种状态,Not running(未运行),Inactive(未激活),Active...

  • iOS应用程序的生命周期

    iOS应用程序的生命周期 来源: Sam_Lau(@Sam_Lau_Dev ) 链接:http://www.jia...

  • 1.1应用程序的生命周期

    应用程序的生命周期 应用程序的生命周期.png

网友评论

      本文标题:iOS应用程序生命周期

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