Activity生命周期基础篇

Activity生命周期的基础篇


本篇主要讲解一个Activity的生命周期和多个Activity交互的生命周期。Activity,一个页面加载出来就是通过Activity这个载体。


       先来说以I行啊一个Activity的生命周期。我们在环境中创建一个Activity的时候,执行的方法及顺序是onCreate--->onStart--->onResume,当到onResume的时候Activity就处于一种开启并显示的状态了。Activity显示以后。点击手机的返回键的时候,执行的方法及顺序就是onPause--->onStop--->onDestory到了这个方法以后整个Activity就消失了。如果点击的是home键,执行的方法及顺序是pnPause--->onStop,onDestory方法并不执行。按Home和按返回键的区别是: 按Home键Activity只是到了后台,并没有被销毁,而按返回键后Activity直接被销毁调用了onDestroy()

        多个Activity交互的生命周期,以MainActivity和SecondActivity为例:首先当第一个MainActivity创建成功时,执行的方法及顺序为Main onCreate--->Main   onStart--->Main  onResume。点击按钮跳转到SecondActivity时候,执行的方法及顺序是Main onPause--->Second onCreate--->Second onStart--->Second onResume--->Main onStop。点击手机返回按键,执行的方法及顺序是Second onPause--->Main onRestart--->Mian onStart--->Main onResume--->Second onStop--->Second onDestory。

       弹出Dialog的时候,Activity的生命周期是不发生变化的。

       在父Activity中显示透明的或者非全屏的Activity,它的执行方法,父Activity只会执行到onPause,不会执行onStop方法。

       执行finish()方法的时候,生命周期都会执行onDestory。

总结与疑问:


通过上面运行的实例可以简单的理解:

                                                           onCreate()不可见,不可交互。

                                                           onStart()可见,不可交互。

                                                           onResume()可见,可交互。

                                                           onPause()部分可见,不可交互(比如上面弹出来电话了)。

                                                           onStop()不可见,不可交互。

可能大家会有一些疑问,我也有过。在两个Activity跳转的时候,为什么Maintivity跳转到SecondActivity的时候,要是这样的执行顺序Main onPause--->Second onCreate--->Second onStart--->Second onResume--->Main onStop而不是执行完Main onPause--->先执行Main onStop。因为onStop执行完以后就是一种不可见的状态,如果SecondActivity出现问题被crush掉了,MainActivity又执行了onStop是一种不可见的状态,对于用户来说就是一种黑屏状态了,所以这样设计,SecondActivity启动执行完成之后,Framework会记录这个完成状态,把原来的隐藏掉了就可以执行MainActivity.Stop。解释了这个疑问。
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值