Android四大组件之Activity知识梳理
示意图.png
一. Activity定义
Activity 是Android的重要组成部分,是四大组件之一,简单来说,它是用户可以看的见的,进行交互的界面。app界面的美观与否直接影响用户的体验感受。
二 . Activity生命周期
生命周期流程图.png一个最简单的完整的Activity生命周期顺序回调过程:onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy。
生命周期方法.png
Ⅰ. 当启动Activity后,依次执行onCreate()–>onStart()–>onResume(),此时Activity已进入运行状态并在前台显示。
logcat.png
Ⅱ . 当Activity创建完成后,点击Home键回到主界面时,(Activity不可见)–>onPause()–>onStop()依次被调用。
logcat1.png
Ⅲ . 当点击Home键回到主界面后,再次点击App回到Activity时,依次执行onRestart()–>onStart()–>onResume()方法。
logcat2.png
Ⅳ.当点击Back键回退时,Activity将被销毁 ,依次执行 onPause()–>onStop()–>onDestroy()方法。
logcat3.pngⅤ.当在原有的Activity的基础上启动新的Activity时,原Activity生命周期执行方法顺序为–>onPause()–>onStop(),新的Activity 依次执行onCreate()–>onStart()–>onResume()。
logcat4.png这里SecondActivity生命周期方法是在原Activity的onPause方法执行完成后才被回调,所以onPause方法不能做耗时操作。
三 . Activity启动模式
启动模式.pngActivity以任务栈的形式来管理,并采用“后进先出”的栈结构
任务栈.png
-
standard : 默认的Activity启动模式,Activity每启动一次,就会创建一个新的实例并置于栈顶位置。
-
singleTop : 新建一个Activity,如果这个Activity处于栈顶就直接重用该实例(不重建新的实例);
如果这个Activity不在栈顶,那么就新建一个实例置于栈顶。 -
singleTask : 新建一个Activity,如果没有需要的栈,就创建需要的栈并创建Activity实例置于栈内;
如果有需要的栈并且栈内也存在该Activity的实例那么就将该实例置于栈顶;
如果有需要的栈且栈内没有该Activity的实例,那么就新建实例并置于栈顶位置。 -
singleInstance : 开启一个新的任务栈,把要激活的Activity放置到新的任务栈里,这个任务栈里有且只有一个实例,任何应用再次激活该Activity时都会重用该栈中的实例 。
模式设置方式:在AndroidManifest.xml文件中,
设置方式.png
四 . Activity之间数据传递
示意图.png- Intent传递数据
- Bundle传递数据
- 使用序列化对象传递数据
第一个Activity:
放数据.png第二个Activity:
接收数据.png- 使用静态变量传递数据
第一个Activity:
第二个Activity:
静态变量.png- 使用onActivityResult传递数据
第一个Activity:
第二个Activity:
放数据.png