1 前言

上节我们介绍了程序执行的状态,从例子中我们可以发现处理这些状态更改的时候有明确的策略可以遵循,这次我们就来介绍一下。

2 详述

2.1 活动-》不活动

使用applicationWillResignActive:/UIApplicationWillResignActiveNotification来“暂停”应用程序的显示。确保工作中不需要及时的用户输入,因为应用程序在一段时间内不会获得任何用户输入。

2.2 不活动-》后台

使用applicationDidEnterBackground:/UIApplicationDidEnterBackgroundNotification释放在应用程序处于后台状态时不需要保留的任何资源(比如缓存的图像或者其他可以轻松加载的数据),或者无法保存在后台的任何资源(比如网络连接)。在这里避免过度的使用内存使用将应用程序的最终的暂停快照更小,从而减小了应用程序从RAM整个清楚的风险。还可以通过此机会保存任何必要的应用数据,这些数据将有助于用户在下一次重新启动时候找到上次离开时的进度。

2.3 后台-》不活动

使用applicationDidBecomeActive:/UIApplicationDidBecomeActiveNotification恢复从后台状态切换到不活动状态时候所执行的任何操作。例如,在这里可以重新建立持久网络连接。

2.4 不活动-》活动

使用applicationDidBecomeActive:/UIApplicationDidBecomeActiveNotification恢复从不活动到活动状态时候所做的任何操作。这个方法和通知在应用程序全新启动时使用,所以在这里执行的任何操作也必须在该上下文有效。

注意:在此过度过程中,系统不会提供大量时间来保存这里的更改,仅提供5秒的时间。如果超过5秒,应用程序将立刻从内存中清楚并进入未运行状态!

3 结语

以上是所有内容,希望对大家有所帮助。

IOS开发之程序执行状态更改的更多相关文章

  1. iOS开发人员程序许可协议

    请细致阅读以下的许可协议条款和条件之前下载或使用苹果软件.   这些条款和条件构成你和苹果之间的法律协议.   iOS开发人员程序许可协议   目的 你想使用苹果软件(例如以下定义)来开发一个或多个应 ...

  2. iOS开发-捕获程序崩溃日志

    iOS开发中遇到程序崩溃是很正常的事情,如何在程序崩溃时捕获到异常信息并通知开发者,是大多数软件都选择的方法.下面就介绍如何在iOS中实现: 1. 在程序启动时加上一个异常捕获监听,用来处理程序崩溃时 ...

  3. iOS开发--应用程序上线

    iOS应用上线 http://www.jianshu.com/p/ffddc5e5f0b9 iOS真机测试 http://www.jianshu.com/p/986e02d38f1b iOS应用程序打 ...

  4. iOS开发 - App程序启动原理

    Info.plist和pch文件的作用 建立一个project后,会在Supporting files目录下看到一个"project名-Info.plist"的文件,该文件对pro ...

  5. IOS开发 应用程序图标数字角标

    其实实现这个功能很简单,只要调用UIApplication即可.   用法用例:[UIApplication sharedApplication].applicationIconBadgeNumber ...

  6. iOS开发-为程序添加应用设置

    一.设置捆绑包 设置捆绑包是应用自带的一组文件,用于告诉设置该应用期望得到用户的哪些偏好设置. 新建设置捆绑包:Command+N,在iOS部分中的Resource,选择Settings Bundle ...

  7. iOS开发学习路线图

    很多初学iOS开发的人会经常问:“我想学iOS应该从何入手呢?”.作为一个做了2年多各种iOS开发的程序员,只想写写自己的一些心得体会,好和体验与不好的体验.写的不好,请多包涵.希望能起到抛砖引玉的作 ...

  8. 10个必需的iOS开发工具和资源

    本文转载至 http://mobile.51cto.com/iphone-418166.htm 界面总不是一件很容易事,尤其是iPhone/iPad的界面,做过iOS开发的程序员,一定会感到开发iPh ...

  9. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

    前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...

随机推荐

  1. SVN的初步使用方法

    1.需要公司提供SVN账号密码 2.cd 输入本地存储路径 3.输入服务器地址 --uesr= (账号名) --password=(账号密码) 4.本地路径会自动创建文件 5.经理会初始化项目 5.1 ...

  2. Asp.net mvc4 + HighCharts + 曲线图

    前端代码: @{ Layout = null;}<!DOCTYPE html><html><head> <title></title> &l ...

  3. hdu1215 正整数唯一分解定理应用

    B - (例题)因子和 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     64 ...

  4. C#随机生成连续多少个十六进制数字

    1.调用系统函数生成全球唯一标识 Guid.NewGuid().ToString(); 2.生成16组十六进制数 ,)+Guid.NewGuid().ToString().Substring(,)+G ...

  5. HTML/CSS代码片段

    内容简介:本文收集了我常用的CSS代码片段! *reset @charset "utf-8"; /* reset */ body, dl, dd, h1, h2, h3, h4, ...

  6. 使用spool命令从Oracle导出数据

    公司的网站用的是Oracle数据库,最近要导出里面的数据,使用mysql数据库 spool D:\DB\{文件名}.sql set heading off; set echo off; set fee ...

  7. MyEclipse安装Eclipse Memory Analyzer插件,并进行错误文件分析流程

    在看深入JVM虚拟机一书(p50,2.4 实战OutOfMemoryError),有一个Java堆溢出的例子,使用到了Eclipse Memory Analyzer插件,由于自己现在使用的是MyEcl ...

  8. /users/products.:format 这种写法的其对应解析字符写法

    “products.:format" 这种写法可以有对应的下面两种路由形式 /products.json /products.xml "products.:format?" ...

  9. 【转】Device Tree(三):代码分析

    原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入De ...

  10. 【转】git 学习笔记( 随时更新中…… 最后更新日期201304281518)--不错

    原文网址:http://blog.csdn.net/yasin_lee/article/details/5975070 GIT 是版本管理的未来!   推荐几个GIT教程网站 http://www-c ...