当前位置:网站首页>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()方法。如下:
边栏推荐
- 【STM32】实战3.1—用STM32与TB6600驱动器驱动42步进电机(一)
- The gun startles the dragon, and the crowd "locks" Zhou Zhi
- V-for img SRC rendering fails
- Kitex 重试机制
- The seventh training assignment
- What does intermediate software evaluator test
- 书签整理-程序员常用网站导航
- uniCloud
- Mendeley -- a free document management tool that automatically inserts references into papers
- [installation system] U disk installation system tutorial, using UltraISO to make U disk startup disk
猜你喜欢
Qtcreator sets multiple qmake
[pro test feasible] error while loading shared libraries solution
【推薦系統 01】Rechub
Interprocess communication (IPC)
What are the test preparation materials and methods for soft exam information processing technicians?
【安装系统】U盘安装系统教程,使用UltraISO制作U盘启动盘
Idea shortcut keys
[untitled]
Using tansformer to segment three-dimensional abdominal multiple organs -- actual battle of unetr
2021-04-23
随机推荐
Seata 1.3.0 four modes to solve distributed transactions (at, TCC, Saga, XA)
Mendeley -- a free document management tool that automatically inserts references into papers
Deconstruction and assignment of variables
2022年7月10日“五心公益”活动通知+报名入口(二维码)
【OneNote】无法连接到网络,无法同步问题
Mpx 插件
【安装系统】U盘安装系统教程,使用UltraISO制作U盘启动盘
PR Lecture Notes
[untitled]
2021 summary and 2022 outlook
请问申购新股哪个证券公司开户是最好最安全的
Typescript interface inheritance
uniCloud
[recommendation system 02] deepfm, youtubednn, DSSM, MMOE
What is an intermediate network engineer? What is the main test and what is the use?
[untitled]
[untitled]
Process control (creation, termination, waiting, program replacement)
The eighth training assignment
[pytorch 07] hands on deep learning chapter_ Preliminaries/ndarray exercises hands-on version