iOS界面生命周期过程具体解释
开发过Android的人都知道,每个Android界面就是一个Activity,而每个Activity都会有自己的生命周期, 有一系列方法会控制Activity的生命周期。如:onCreate(),onStart(),onResume(),onDestroy()等等。
在iOS中,也会有这种流程控制。这篇博客先来讨论一个iOS应用的控制流程。
在新创建的一个程序中会有一个AppDelegate.swift文件,里面包括的一系列方法体现了iOS的控制流程。
以下是系统自己生成的代码,我们来感受一下:
import UIKit @UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
} func applicationWillResignActive(application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } func applicationDidEnterBackground(application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } func applicationWillEnterForeground(application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } }
当中的凝视也是代码自己主动生成的。以下我们具体介绍一下这几个方法。
(1)func applicationWillResignActive(application: UIApplication)
该方法在当前应用程序即将退出活动状态时会被调用,如界面即将退回到主界面时,会被调用。能够和Android中的onPause()方法比較。
官方的解释中还说,程序的临时停止执行,如进来一个电话,或者短信都会调用该方法。
(2)func applicationDidEnterBackground(application: UIApplication)
该方法一般在applicationWillResignActive()后调用。表示应用将会进入后台执行。官方的解释中还说,程序调用这种方法会释放共享的资源。并保存用户的数据。同一时候也会存储当前应用程序的信息,供程序恢复执行时使用。注意:假设你的应用程序支持后台执行。那么当用户退出程序时,将不会调用applicationWillTerminate()方法,而是调用applicationDidEnterBackground() 方法。
(3)func applicationWillEnterForeground(application: UIApplication)
该方法在应用程序进入活动状态(前台)时调用。
如本来在后台执行,如今点击图标。又一次执行程序活动。
(4)func applicationDidBecomeActive(application: UIApplication)
该方法一般在applicationWillEnterForeground()方法之前调用。表示应用程序即将进入前台。
(5)func applicationWillTerminate(application: UIApplication)
该方法在程序被终止时调用。如从近期执行程序中删除当前程序,就会调用该方法。
以下我们对上述代码做一点改动。在每个方法中输出一句话,并在模拟器中做各种操作,观察输出结果,就能够知道整个应用的运行流程。
func applicationWillResignActive(application: UIApplication) {
println("Application Will Resign Active")
}
func applicationDidEnterBackground(application: UIApplication) {
println("Application Did Enter Background")
}
func applicationWillEnterForeground(application: UIApplication) {
println("Application Will Enter Foreground")
}
func applicationDidBecomeActive(application: UIApplication) {
println("Application Did Become Active")
}
func applicationWillTerminate(application: UIApplication) {
println("Application Will Terminate")
}
(一)启动-->按Home键
运行结果:Application Did Become Active-->Application Will Resign Active-->Application Did Enter background
(二)启动-->按Home键-->点击图标再次启动
运行结果:Application Did Become Active-->Application Will Resign Active-->Application Did Enter background-->Application Will Enter Foreground-->Application Did Become Active
(三)启动-->从近期应用程序中删除
Application Did Become Active-->Application Will Resign Active-->Application Did Enter background-->Application Will Terminate
上述是比較简单的操作控制。以后还会有更为复杂的。我们到时候在慢慢研究。
github主页:https://github.com/chenyufeng1991 。
欢迎大家訪问!
iOS界面生命周期过程具体解释的更多相关文章
- 简单介绍关于IOS的生命周期过程
初步了解一下生命周期的过程: 1.通过alloc init 分配内存,初始化controller. 2.loadViewloadView方法默认实现[super loadView]如果在初始化cont ...
- (转)深入浅出 iOS 之生命周期
原文:http://www.cocoachina.com/applenews/devnews/2011/0817/3129.html 深入浅出 iOS 之生命周期 发布于:2011-08-17 10: ...
- 【Xamarin 开发 IOS --IOS ViewController生命周期】
ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内 ...
- 【转】深入浅出 iOS 之生命周期
[iOS]深入浅出 iOS 之生命周期 深入浅出 iOS 之生命周期 http://blog.csdn.net/kesalin/article/details/6691766 罗朝辉(http:// ...
- 图解ios程序生命周期
图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate ...
- iOS的生命周期
iOS应用程序一般都是由自己编写的代码和系统框架组成.系统框架提供了一些基本的infrastructure给APP来运行,而开发者则自己编写代码定制APP的外观和行为,了解iOS infrastruc ...
- iOS视图生命周期
视图是应用的一个重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 1.视图生命周期与视图控制器关系 以视图的4 种状态为基础,我们来系统了解一下视图控制器的 ...
- iOS ViewController生命周期
ViewController是view的controller,viewController的职责主要包括管理内部各个view的加载显示与卸载,同时负责与其他ViewController的通信和协调. ...
- 深入浅出 iOS 之生命周期
转:http://blog.csdn.net/kesalin/article/details/6691766 iOS应用程序的生命周期相比 Android 应用程序的生命周期来说,没那么简明易懂,但是 ...
随机推荐
- jQuery插件开发初探
最简单的插件 $.fn.changeStyle = function (colorStr) { $(this).css('color',colorStr); } 应用如下: <!DOCTYPE ...
- powerpoint(ppt) 的制作
1. 幻灯片母版 所谓母版,是共享的部分,也即想在全部幻灯片重复出现的元素. 首先,幻灯片母版在菜单栏的[视图]选择[幻灯片母版]显示和查看. 通过幻灯片母版的编辑和设计,可进一步: 在幻灯片的相关位 ...
- shrio int配置
之前章节我们已经接触过一些INI配置规则了,如果大家使用过如Spring之类的IoC/DI容器的话,Shiro提供的INI配置也是非常类似的,即可以理解为是一个IoC/DI容器,但是区别在于它从一个根 ...
- Windows平台下使用pthreads开发多线程应用
pthreads简介 POSIX 1003.1-2001标准定义了编写多线程应用程序的API(应用程序编程接口),这个接口通常被称为pthreads.在常见的操作系统中,例如Unix.Linux.Ma ...
- C# Dapper 基本使用 增删改查事务等
using DapperTest.Models; using System.Collections.Generic; using System.Web.Http; using Dapper; usin ...
- dos 实用命令搜集
dos 命令: 1.netstat -an 2.XP下打开凭证管理: control keymgr.dll 3.刷新DHCP协议,重新自动获取IP * ipconfig/release 命令来丢 ...
- C#实现窗口拖动时各个控件同比自己主动放缩大小
实现方式主要是利用panel控件为主题.对于每一个控件的大小位置和字体这几个属性进行记录. 然后依据窗口改变的大小同一时候放缩. 简要过程例如以下: 1 创建C#窗口程序项目. 2 Panel放置到 ...
- 记真实自己,炫精彩人生---《爱记》app使用体验
真的有款神器吗,能找到合适的Ta,能秀出自己的新生活,能让自己的心情舒爽,有,体验了下.就是爱记.果粉的福利. [爱记]是集心情记录.分享.评价与交流于一体的工具,TA是你心灵休憩的港湾,也是你记忆放 ...
- vim-进入插入模式快捷键
vim中有一些命令,是同时包含有大小写两种的.现在就集中测试下他们的区别: 1.A 跟a A-光标所在行的末尾插入 a-光标后插入 2.I 跟i I-光标所在行的非空字符前插入 i-光标前位置 ...
- android学习笔记五。1、Service深入学习
一.Service,服务是没有界面而在后台长期运行的程序,可以看做是后台的Activity. 1.在Android中按返回键退出一个应用并不会(内存充足时)直接销毁一个进程,所以其中的子线程也可以在后 ...