![](https://img.haomeiwen.com/i6668050/4c2ffb920b556355.png)
![](https://img.haomeiwen.com/i6668050/26db1aaf023b44e7.png)
一. Activity定义
Activity 是Android的重要组成部分,是四大组件之一,简单来说,它是用户可以看的见的,进行交互的界面。app界面的美观与否直接影响用户的体验感受。
二 . Activity生命周期
![](https://img.haomeiwen.com/i6668050/c27584470c8fa52a.png)
一个最简单的完整的Activity生命周期顺序回调过程:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。
![](https://img.haomeiwen.com/i6668050/afffc488a942c652.png)
Ⅰ. 当启动Activity后,依次执行onCreate()–>onStart()–>onResume(),此时Activity已进入运行状态并在前台显示。
![](https://img.haomeiwen.com/i6668050/ef7c8381e78fea64.png)
Ⅱ . 当Activity创建完成后,点击Home键回到主界面时,(Activity不可见)–>onPause()–>onStop()依次被调用。
![](https://img.haomeiwen.com/i6668050/b97bfbafddfc5bed.png)
Ⅲ . 当点击Home键回到主界面后,再次点击App回到Activity时,依次执行onRestart()–>onStart()–>onResume()方法。
![](https://img.haomeiwen.com/i6668050/a036fdcec529b122.png)
Ⅳ.当点击Back键回退时,Activity将被销毁 ,依次执行 onPause()–>onStop()–>onDestroy()方法。
![](https://img.haomeiwen.com/i6668050/d0f26cee060a2e95.png)
Ⅴ.当在原有的Activity的基础上启动新的Activity时,原Activity生命周期执行方法顺序为–>onPause()–>onStop(),新的Activity 依次执行onCreate()–>onStart()–>onResume()。
![](https://img.haomeiwen.com/i6668050/859e30038d121d05.png)
这里SecondActivity生命周期方法是在原Activity的onPause方法执行完成后才被回调,所以onPause方法不能做耗时操作。
三 . Activity启动模式
![](https://img.haomeiwen.com/i6668050/0aed301a3af405da.png)
Activity以任务栈的形式来管理,并采用“后进先出”的栈结构
![](https://img.haomeiwen.com/i6668050/f28ae1aa0bc973db.png)
-
standard : 默认的Activity启动模式,Activity每启动一次,就会创建一个新的实例并置于栈顶位置。
-
singleTop : 新建一个Activity,如果这个Activity处于栈顶就直接重用该实例(不重建新的实例);
如果这个Activity不在栈顶,那么就新建一个实例置于栈顶。 -
singleTask : 新建一个Activity,如果没有需要的栈,就创建需要的栈并创建Activity实例置于栈内;
如果有需要的栈并且栈内也存在该Activity的实例那么就将该实例置于栈顶;
如果有需要的栈且栈内没有该Activity的实例,那么就新建实例并置于栈顶位置。 -
singleInstance : 开启一个新的任务栈,把要激活的Activity放置到新的任务栈里,这个任务栈里有且只有一个实例,任何应用再次激活该Activity时都会重用该栈中的实例 。
模式设置方式:在AndroidManifest.xml文件中,
设置方式.png
四 . Activity之间数据传递
![](https://img.haomeiwen.com/i6668050/add3a9703075a93d.png)
- Intent传递数据
![](https://img.haomeiwen.com/i6668050/48616c8aa51bddfa.png)
![](https://img.haomeiwen.com/i6668050/6d6b4389f63ad029.png)
- Bundle传递数据
![](https://img.haomeiwen.com/i6668050/92aee130d9e000dc.png)
![](https://img.haomeiwen.com/i6668050/90158acf36f987fb.png)
- 使用序列化对象传递数据
![](https://img.haomeiwen.com/i6668050/03149dd4555b026a.png)
第一个Activity:
![](https://img.haomeiwen.com/i6668050/fb06a063283023b6.png)
第二个Activity:
![](https://img.haomeiwen.com/i6668050/55e3d1d69c314673.png)
- 使用静态变量传递数据
第一个Activity:
![](https://img.haomeiwen.com/i6668050/1371e9a24281d470.png)
第二个Activity:
![](https://img.haomeiwen.com/i6668050/c60485be234d732e.png)
- 使用onActivityResult传递数据
第一个Activity:
![](https://img.haomeiwen.com/i6668050/1fee1f74c19ee379.png)
第二个Activity:
![](https://img.haomeiwen.com/i6668050/fd0b9f21431d55fe.png)
网友评论