当前位置:网站首页>Activity生命周期
Activity生命周期
2022-07-07 09:04:00 【砖厂打工仔】
Activity生命周期
一、生命周期图

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

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

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

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

场景二:SecondActivity采用弹窗的形式显示。
- 当启动FirstActivity时,会执行FirstActivity的onCteate()、onStart()、onResume()方法。如下:

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

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

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

边栏推荐
- 2022.7.3DAY595
- Some online academic report websites and machine learning videos
- Hash / (understanding, implementation and application)
- 2022.7.6DAY598
- The fifth training assignment
- Wallhaven壁纸桌面版
- Avoid mutating a prop directly since the value will be overwritten whenever the parent component
- 2021 summary and 2022 outlook
- The eighth training assignment
- 2021-05-21
猜你喜欢
随机推荐
[installation system] U disk installation system tutorial, using UltraISO to make U disk startup disk
Unity determines whether the mouse clicks on the UI
Some online academic report websites and machine learning videos
verilog设计抢答器【附源码】
uniCloud
2021-05-21
A case of compiling QT file qmake compiling script
Realize ray detection, drag the mouse to move the object and use the pulley to scale the object
Unity script visualization about layout code
[C #] the solution of WinForm operation zoom (blur)
2022.7.4DAY596
基于DE2 115开发板驱动HC_SR04超声波测距模块【附源码】
Deconstruction and assignment of variables
SQL Server 知识汇集9 : 修改数据
2021-04-08
Unity websocket client
MPX plug-in
shardingsphere分库分表示例(逻辑表,真实表,绑定表,广播表,单表)
Mendeley -- a free document management tool that automatically inserts references into papers
The eighth training assignment




![[untitled]](/img/a0/29975bc0f9832e1640cc39dfce4a71.jpg)



![[untitled]](/img/f9/18b85ad17d4c560f2b9d95a53ee72a.jpg)
