Activity生命周期

Activity生命周期

一、生命周期图

二、回调方法
  1. onCteate():当Activity首次被创建时,会执行此方法。一般情况下会做一些初始化,输入事件的绑定等。
  2. onStart():当Activity显示给用户时,会执行此方法。此时用户可以看到该Activity,但不能进行交互,可以简单理解为看得见,摸不着。
  3. onResume():当Activity位于前台时,会执行此方法。此时用户可以和该Activity进行交互,并且这时的Activity位于栈顶。即看得见摸得着。
  4. onPause():当有另一个Activity覆盖当前Activity时,会执行此方法。之前的Activity会失去焦点并保存数据,并且是可见的,只是不能与用户交互了。
  5. onStop():当Activity不可见了,会执行onStop(),这时的Activity会在后台运行,并不会被销毁。
  6. onDestroy():当点击系统界面的返回键时,会执行Activity的finish()方法,这时Activity会被销毁。
  7. onRestart():当第二个Activity被销毁后,第一个Activity会回到前台,此时会执行此方法。但场景二对应的FirstActivity不会执行此方法,因为以弹窗形式显示的SecondActivity,并没有完全覆盖FirstActivity,所以FirstActivity没有执行onStop(),也就不会执行onRestart()方法了,原理可参照上面生命周期图。
三、实例演示

这里使用了两个Activity举例:FirstActivity、SecondActivity。重写了所有的生命周期方法,打印日志。

场景一:SecondActivity采用的与FirstActivity一样默认的全屏显示。

  1. 当启动FirstActivity时,会执行FirstActivity的onCteate()、onStart()、onResume()方法。如下:

  1. 点击FirstActivity中的第一个按钮,跳转至SecondActivity,此时FirstActivity会执行onPause()、onStop()方法,从而不可见。而SecondActivity会被创建,执行onCteate()、onStart()、onResume()方法。如下:

  1. 点击手机返回键,相当于执行的Activity的finish()方法。此时SecondActivity将被销毁,会执行onPause()、onStop()、onDestroy()方法。而FirstActivity会回到前台,会执行onRestart()、onStart()、onResume()方法。如下:

  1. 再次点击返回键,FirstActivity也会被销毁,相继执行onPause()、onStop()、onDestroy()方法。

场景二:SecondActivity采用弹窗的形式显示。

  1. 当启动FirstActivity时,会执行FirstActivity的onCteate()、onStart()、onResume()方法。如下:

  1. 点击FirstActivity中的第一个按钮,跳转至SecondActivity,此时FirstActivity只会执行onPause()方法,是部分可见的。而SecondActivity会被创建,执行onCteate()、onStart()、onResume()方法。如下:

  1. 点击手机返回键,相当于执行的Activity的finish()方法。此时SecondActivity将被销毁,会执行onPause()、onStop()、onDestroy()方法。而FirstActivity会由部分可见转为全部可见,只会执行onResume()方法。如下:

  1. 再次点击返回键,FirstActivity也会被销毁,相继执行onPause()、onStop()、onDestroy()方法。如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值