Android面试之Activity生命周期详解

Activity生命周期详解

一 Activity的四种状态:

Activity的生命周期中存在四种基本的状态:活动状态(Active/Runing),暂停状态(Paused),停止状态(Stopped),销毁状态(Killed)。每个状态下Activity都会拥有某些能力和失去某些能力。

  • 活动状态(Active/Runing)

    一个新的Activity入栈之后,当处于Activity的栈顶,此时它处于可见并且能与用户交互的激活状态,叫做活动状态或者运行状态。

    期间触发的生命周期有: onCreate() -> onStart() -> onResume()。

  • 暂停状态(Paused)

    当Activity是去焦点,一个新的非全屏的Activity或者一个透明的Activity被放置在栈顶。注意:在Activity之上显示Dialog或者PoupWindow的时候,该Activity并不会变成暂停状态。一个处于暂停状态下的Activity只有再通极度匮乏的时候才会被回收掉。

    运行状态到暂停状态触发的生命周期:onResume() -> onPause()。

    从暂停状态恢复到运行状态触发的生命周期:onPause() -> onResume()。

  • 停止状态(Stopped)

    一个Activity被另外一个Activity完全覆盖掉,用户不可见或者退至后台,叫做停止状态。它仍然保持这所有状态跟成员信息,不能与用户交互。当系统内存需要的时候Stopped状态的Activity会被强制回收掉。

    从暂停到停止状态触发的生命周期:onPause() -> onStop()。

    从停止状态到运行状态触发的生命周期:onStop() -> onRestart() -> onStart() -> onResume()。不会走onCreate()。

  • 销毁状态(Killed)

    如果一个Activity再Paused或者Stopped状态,系统可以将Activity从内存中删除,删除的方式有两种:一种是要求Activity结束,一种直接结束掉它的进程。当有需要的时候就得重新创建Activity了。

    触发的生命周期:onDestroy(),直接结束进程的话是不会走onDestroy()的。

上面是Activity在整个生命周期中展示的四种状态。程序员可以手动创建一个Activity,但不能手动的销毁一个Activity。也就是说当调用activity.finish()方法或者按下物理返回键去关掉一个Activity的时候,只是通知了AntivityManager该Activity可以被回收了,随后ActivityManage将采取一系列的回收措施,这是开发者无法干预的。

二 完整的生命周期:

Activity完整的生命周期 :

oncreate()->onstart()->onResume()->onRestart()->onPouse()->onStop()->onDestory()。

Activity在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值