当前位置:网站首页>Activity生命周期

Activity生命周期

2022-07-07 09:04:00 砖厂打工仔

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()方法。如下:

原网站

版权声明
本文为[砖厂打工仔]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_42456748/article/details/124989004