Activity的了解

来源:互联网 发布:今日头条 微博 知乎 编辑:程序博客网 时间:2024/06/07 18:31

Activity标配

Activity是Android四大组件之一,是我们平时开发中用到的可以说是最多的组件,他主要用于展示界面,相当于一个容器。

我们需要找我的Activity的基本信息是:

  • Activity生命周期

  • Activity启动模式


Activity生命周期

Activity的生命周期回调方法:
onCreate(创建Activity时被调用)
onStart(Activity可见时被调用)
onResume(Activity获取焦点时被调用)
onPause(Activity失去焦点的时候被调用)
onStop(Activity不可见的时候被调用)
onDistory(Activity被销毁的时候被调用)
onRestart(Activity从不可见到可见时被调用)

生命周期图
这里写图片描述

Activity启动模式

standard系统默认启动模式
该模式下只要通过start方法开启Activity,则就会在栈中创建新的Activity

singleTop栈顶单例模式
判断需要启动的Activity是否为任务栈栈顶 ,如果是,则不会重新创建,如果不是,则会重新创建
例如:当前栈中有A-Activity与B-Activity,B位于栈顶,则再次开启B的时候则不会创建新的,并且Activity的onNerIntent方法会被回调。

SingleTask栈内单例模式
当栈内已经存在了某个我们要创建的Activity,这时我们不会去创建新的该Activity与singleTop一样他的onNewIntent方法会被回调,假设我么你现在要创建Activity-A,系统会去判断是否有A想要的任务栈,如果有,则将创建A放入栈中,如果不存在则系统会创建A需要的任务栈,并将其创建放入栈中。
注意:SingleTask具有clearTop的效果,假设现在栈中有四个Activity,分别是ABCD,如果这时候A的启动模式为SingleTask的话并且A位于栈底,则BCD四个Activity会被清除出栈,如果A位于栈顶则栈中不会发生任何变化。

SingleInstance单例模式
该模式是SingleTask的加强版,它具备了SingleTask的所有特性,但还多了一条霸王条款,就是具有此模式的Activity只能单独位于一个任务栈,系统会为之新建一个任务栈。

未完待续。。。