Android的Activity的生命周期

简化的 Activity 生命周期图示,以阶梯金字塔表示。此图示显示,对于用于将 Activity 朝顶端的“继续”状态移动一阶的每个回调,有一种将 Activity 下移一阶的回调方法。 Activity 还可以从“暂停”和“停止”状态回到继续状态。
  • onCreate: 表示activity正在被创建。会在活动第一次被创建的时候调用。(创建状态)
  • onStart: 此方法被调用时表示activity已经显示出来了,但是activity没有在前台,无法和用户交互。会在活动由不可见变为可见的时候调用。(开始状态)
  • onResume:表示Activity已经可见,到达前台可以与用户交互。会在活动准备好和用户进行交互的时候调用。(运行状态)
  • onRestart:表示Activity从不可见状态变为可见状态时,会调用此方法。也就是活动由停止状态变为运行状态之前调用,表示活动被重启了。(重新开始状态)
  • onPause:当Activity被一些窗口遮挡住的时候就会调用此方法,如dialog。这个方法会在系统去启动或者恢复另一个Activity的时候调用。我们通常会在这个方法中将一些消耗CPU的资源释放掉,以及保存一些关键数据,但这个方法的执行速度一定要快,不然会影响到新的栈顶活动的的使用。(暂停状态)
  • onStop:当Activity由可见变为不可见时会调用此方法,如Home,跳转Activity。(停止状态)
  • onDestroy:当Activity被销毁的时候会调用此方法,比如在Activity中执行finnish()方法。(销毁状态)

以上几个状态,只有三个状态是静态的,也就是说,Activity在这三个状态下可以存在很长时间。

  • 继续:在这种状态下,Activity处于前台,并且可以与用户进行交互,也被称作为运行状态。处于栈顶。
  • 暂停:在这种状态下,Activity被在前台中处于半透明状态或未覆盖整个屏幕的另一个Activity阻挡,不能接受用户的输入并且无法执行任何代码,但是可见。处于非栈顶。
  • 停止状态:在这种状态下,Activity完全隐藏,对用户不可见。被视为处于后台。停止时,Activity实例及其成员变量的状态信息都会被保留,但不会执行任何代码,当其他地方需要内存时,处于停止状态的Activity可能会被系统回收。

其他状态(“创建”和“开始”)是瞬态,系统会调用下一个生命周期的回调方法,从这些状态快速移动到下一个状态,也就是说:在调用onCreate()之后,系统会立即调用onStart(),然后立即调用onResume()。

  • 启动Activity:onCreate()——>onStart()——>onResume(),Activity进入运行状态。
  • Activity退居后台:当前Activity转到新的Activity界面或者按下Home键回到主界面,onPause()——>onStop(),进入停止状态。
  • Activity回到前台:onRestart()——>onStart()——>onResume(),Activity回到运行状态。
  • Activity退居后台且系统内存不足时,系统会杀死这个后台的Activity(此时该Activity仍出于任务栈中,只是这个时候对象指向的引用已经变为null),若再次回到这个Activity,则会走onCreate()——>onStart()——>onResume(),重新走一遍Activity的初始化生命周期。
  • 锁屏:onPause()——>onStop()
  • 解锁:onStart()——>onResume()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值