iOS UIViewController和Android Activity的主要生命周期事件

原创 2016年06月02日 14:59:46

将iOS UIViewController和Android Activity的主要生命周期事件放到一起比对,也还是有点意思的,一种天下武功出少林,形变神不变的感觉。

如下:

iOS(UIViewController) Android(Activity)
事件 备注 事件 备注
alloc 分配内存地址,相当于Java的new时的前半段(分配内存),但不包括后半段(类的构造函数)    
init / initWithNibName 初始化对象,初始化数据 onCreate 当第一次调用一个Activity就时执行onCreate,定义UI,初始化成员变量,启动服务和创建线程等。
loadView 在控制器的view为nil的时候被调用。 此方法用于以编程的方式创建view的时候用到。注意调用此方式时view还没有生成。
viewDidLoad view已经生成,可以进行自定义数据、动态创建控件等创造做
此时状态:Created
    onRestart onRestart()方法则是只在activity从stopped状态恢复时才会被调用
viewWillAppear 视图出现前(即将出现)调用 onStart onStart方法后Activity处于可见状态
viewDidAppear 视图已经出现(出现后)调用 onResume 得到焦点的时候、后台回到前台时调用onResume,此方法调用后,Activity可与用户进行交互;
此时状态:Visible/Runing(等待事件中)
viewWillDisappear view即将失去焦点、不在前台显示时被调用 onPause Activity失去与用户的交互能力时被调用,如锁屏、退出、被覆盖、按Home键回到主屏时
此时状态:Hidden
viewDidDisappear view已经不可见了,但变量等在存在 onStop 当Activity处于不可见状态的时候就会调用onStop方法。此时适合处理一些较耗时的资源关闭,写数据库等操作等。
viewWillUnload 在ios6被废弃了,因为Clearing references to views is no longer necessary。    
viewDidUnload    
dealloc 视图被销毁时调用,此时适合做在init和viewDidLoad中创建的对象进行释放。 onDestory 当Activity被销毁时会调用onDestory方法。此时适合做关闭onCreate中创建的线程、回收可能造成内存泄露的资源等。
此时状态:Destoryed

另外附上一些官方图,加深理解:

iOS:


Android:



关于纯代码开发和使用storyboard以及xib的优劣分析

昨天被问到纯代码开发和使用storyboard以及xib的优劣,说了句习惯问题,被强烈的鄙视了。反过来想想,确实,一直以来认为这三者的区别是在于习惯问题,晚上没有好好的入睡,翻阅了资料,回顾了一些积累...
  • testsust
  • testsust
  • 2016年07月20日 09:29
  • 2669

android 的activity 与IOS UIControllerView对比

最近在学习IOS开发,发现IOS开发与android有很多的相似之处,写一下它们之间开发上的不同和相同之处,也好巩固一下android。android ios的开发环境就不做介绍了,网上有很多优秀的教...
  • supershisong
  • supershisong
  • 2016年04月28日 18:10
  • 1627

【对照Android与IOS开发系列】之 Activity与UIViewController + 对接SDK + crash

http://www.th7.cn/Program/Android/201507/495156.shtml   ---------  对照Android与IOS开发系列】之 Activity与UIVi...
  • u013321328
  • u013321328
  • 2016年04月22日 09:44
  • 685

iOS 开发中的争议(二)UI到底应该用xib/storyboard完成,还是用手写代码来完成?

文章来源:http://www.devtang.com/blog/2015/03/22/ios-dev-controversy-2/ 打算分享一些有争议的话题,并且表达一下我的看法。这是该系列的第二...
  • libaineu2004
  • libaineu2004
  • 2015年05月04日 23:15
  • 9482

ios监听程序回到前台,viewController获取事件

法在接下来的随笔中实现) //增加监听 [[NSNotificationCenter defaultCenter] addObserver:self ...
  • u011374699
  • u011374699
  • 2015年04月28日 11:04
  • 1936

iOS UIActivityIndicatorView 的使用(菊花)

UIActivityIndicatorView 非常简单 ,就是一个转圈圈的控件 初始化方法 - initWithActivityIndicatorStyle 控制一个A...
  • zhaopenghhhhhh
  • zhaopenghhhhhh
  • 2013年09月27日 14:20
  • 42808

iOS UIViewController和Android Activity的主要生命周期事件

将iOS UIViewController和Android Activity的主要生命周期事件放到一起比对,也还是有点意思的,一种天下武功出少林,形变神不变的感觉。...
  • cooldragon
  • cooldragon
  • 2016年06月02日 14:59
  • 1485

获取iOS应用中当前处于Activity状态的ViewController

- (UIViewController *)getCurrentVC { UIViewController * curVC = nil; UIWindow * window ...
  • linyang24
  • linyang24
  • 2016年03月16日 17:50
  • 270

关于iOS 中UIViewController的生命周期以及相关视图(View)的探讨

最近朋友在面试的时候,面试官问到了关于iOS中UIViewController的生命周期以及相关视图(View)的问题,朋友对于自己的观点还是挺有信心的,但是面试官提出了异议,朋友回来便和我们聊起了此...
  • LHEnjoy
  • LHEnjoy
  • 2016年07月16日 15:28
  • 772

iOS对UIViewController生命周期和属性方法的解析(转载)

iOS对UIViewController生命周期和属性方法的解析 一、引言         作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,...
  • yuping2901
  • yuping2901
  • 2016年05月03日 11:44
  • 569
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS UIViewController和Android Activity的主要生命周期事件
举报原因:
原因补充:

(最多只允许输入30个字)