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

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

如下:

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

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

iOS:


Android:



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值