ios开发eaaccessory案例_适用于iOS的应用程序编程指南(五)

处理应用程序状态转换的策略对于应用程序的每个可能的运行时状态,系统在您的应用程序处于该状态时具有不同的期望值。当状态转换发生时,系统会通知应用对象,该对象又通知其应用代理。您可以使用UIApplicationDelegate协议的状态转换方法来检测这些状态变化并进行适当的响应。例如,当从前台转移到后台时,您可能会写出任何未保存的数据,并停止任何正在进行的任务。以下部分提供了有关如何实现状态转换代码...
摘要由CSDN通过智能技术生成

处理应用程序状态转换的策略

对于应用程序的每个可能的运行时状态,系统在您的应用程序处于该状态时具有不同的期望值。当状态转换发生时,系统会通知应用对象,该对象又通知其应用代理。您可以使用UIApplicationDelegate协议的状态转换方法来检测这些状态变化并进行适当的响应。例如,当从前台转移到后台时,您可能会写出任何未保存的数据,并停止任何正在进行的任务。以下部分提供了有关如何实现状态转换代码的提示和指导。

在启动时怎么办

当您的应用程序启动(前进或后台)时,请使用应用程序委托应用程序:willFinishLaunchingWithOptions:和application:didFinishLaunchingWithOptions:执行以下操作的方法:

检查启动选项字典的内容,了解应用程序启动的原因,并进行适当的响应。

初始化您的应用程序的关键数据结构。

准备您的应用程序的窗口和视图进行显示:

使用OpenGL ES进行绘图的应用程序不得使用这些方法来准备绘图环境。相反,将任何OpenGLES绘图调用延迟到applicationDidBecomeActive:方法。

从您的应用程序显示您的应用程序窗口:willFinishLaunchingWithOptions:method。UIKit延迟使窗口可见,直到应用程序之后:didFinishLaunchingWithOptions:method返回。

在启动时,系统自动加载应用程序的主要故事板文件,并加载初始视图控制器。对于支持状态恢复的应用程序,状态恢复机制将您的界面恢复到对应用程序的调用之前的状态:willFinishLaunchingWithOptions:andapplication:didFinishLaunchingWithOptions:methods。使用应用程序:willFinishLaunchingWithOptions:方法显示您的应用程序窗口,并确定状态恢复是否应该发生。使用应用程序:didFinishLaunchingWithOptions:方法对应用程序的用户界面进行任何最终调整。

您的应用程序:willFinishLaunchingWithOptions:和应用程序:didFinishLaunchingWithOptions:方法应始终尽可能轻量级,以减少您的应用程序的启动时间。应用程序预计将启动,初始化自己,并在不到5秒钟内开始处理事件。如果应用程序没有及时完成其启动周期,系统将使其无法响应。因此,任何可能减慢启动速度(例如访问网络)的任务都应该在辅助线程上执行。

启动周期

当您的应用程序启动时,它将从非运行状态移动到活动状态或背景状态,暂时转换到非活动状态。作为启动周期的一部分,系统为您的应用程序创建一个进程和主线程,并在该主线程上调用您的应用程序的主要功能。您的Xcode项目随附的默认主要功能可以手动控制到UIKit框架,这在大多数工作中初始化您的应用程序并准备运行。

图4-1显示应用程序启动到前台时发生的事件序列,包括调用的应用程序代理方法。

图4-1将应用程序启动到前台

当您的应用程序启动到后台时 - 通常来处理某些类型的背景事件 - 启动周期会略有变化,如图4-2所示。主要区别在于,您的应用程式不是活跃的,而是进入后台状态来处理该事件,之后可能会被暂停。 当启动到后台时,系统仍然会加载您的应用程序的用户界面文件,但不会显示应用程序的窗口。

图4-2将应用程序启动到后台

要确定您的应用程序是启动到前台还是后台,请检查应用程序中共享的UIApplication对象的applicationState属性:willFinishLaunchingWithOptions:或application:didFinishLaunchingWithOptions:delegate方法。当应用程序启动到前台时,此属性包含值UIApplicationStateInactive。当应用程序启动到后台时,该属性包含值UIApplicationStateBackground。您可以使用此差异来相应地调整委托方法的启动时间行为。

注意:启动应用程序以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值