Android 初级开发工程师

Android四大组件之Activity知识梳理

2018-06-30  本文已影响0人  Millie_tl
懵懂的小菜鸟.png
示意图.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启动模式

启动模式.png

Activity以任务栈的形式来管理,并采用“后进先出”的栈结构


任务栈.png
  1. standard : 默认的Activity启动模式,Activity每启动一次,就会创建一个新的实例并置于栈顶位置。

  2. singleTop : 新建一个Activity,如果这个Activity处于栈顶就直接重用该实例(不重建新的实例);
    如果这个Activity不在栈顶,那么就新建一个实例置于栈顶。

  3. singleTask : 新建一个Activity,如果没有需要的栈,就创建需要的栈并创建Activity实例置于栈内;
    如果有需要的栈并且栈内也存在该Activity的实例那么就将该实例置于栈顶;
    如果有需要的栈且栈内没有该Activity的实例,那么就新建实例并置于栈顶位置。

  4. singleInstance : 开启一个新的任务栈,把要激活的Activity放置到新的任务栈里,这个任务栈里有且只有一个实例,任何应用再次激活该Activity时都会重用该栈中的实例 。
    模式设置方式:在AndroidManifest.xml文件中,


    设置方式.png

四 . Activity之间数据传递

示意图.png
  1. Intent传递数据
Intent传递数据.png intent获取数据.png
  1. Bundle传递数据
bundle传递数据.png bundle获取数据.png
  1. 使用序列化对象传递数据
bean类.png

第一个Activity:

放数据.png

第二个Activity:

接收数据.png
  1. 使用静态变量传递数据
    第一个Activity:
设置数据.png

第二个Activity:

静态变量.png
  1. 使用onActivityResult传递数据
    第一个Activity:
onActivityResult.png

第二个Activity:

放数据.png
上一篇下一篇

猜你喜欢

热点阅读