这是我参与「第四届青训营 」笔记创作活动的第[1]天
1.界面组件 Activity
Activity是一个可视化的用用户界面,负责一个屏幕窗口,防止UI组件,供用户交互。加入我们打开一个引用,看到的整个屏幕就是一个Activity,当点击一个超链接,跳转到另一个界面,则又是一个新的Activity。系统采用栈的方式来管理Activity。
-
Activity形态Activity最大的特点就是拥有多种形态,它可以在多种形态间镜进行切换,以此来控制自己的生命周期。 -
Active/Running这时候Activity处于Activity栈的最顶层,可见并于用户进行交互。 -
Paused当Activity失去焦点,被一个全新非全屏的Activity或者一个透明的Activity放置在栈顶时,Activity就转化为Pausde状态。但他只是失去了与用户交互的能力,所有信息、成员变量都还保持着,只有在系统内存极低的情况下,才会被系统回收掉。 -
Stopped如果一个Activity被另外一个Activity完全覆盖,那么Activity就会处于Stopped形态。那么不再是可见的,但他依然保持了所有状态信息和成员变量。 -
Killed当Activity被系统回收掉或者Activity从来没有创建过,Activity就会处于Killed形态 -
Activity生命周期
onCreate(): 创建时回调,一般这里面创建视图和绑定数据
onStart(): 已启动,即将进入前台
onResume(): 与用户开始交互,位于Activity栈顶
onPause(): Actvity失去焦点或暂停,Activity界面部分可见,下一个生命周期是onResume()或onStop()
onStop(): Activity不在可见,下一个回调是onStart()
onRestart(): 重启已停止的Activity, 下一个回调是onStart()
onDestory(): 销毁Actvity,释放该Activity的所有资源
onSaveInstanceState(): 在非正常关闭时回调,用于保存数据,不支持持久化数据
onRestoreInstanceState(): /onCreate(): 用户恢复数据
3.Activity启动模式
1.Standard: 默认模式,允许Activity重复
2.SingleTop: 栈顶复用,不允许Activity连续重复
3.SingleTask: 栈内复用,不允许栈内Activity重复
4.SingleInstance: 全局服用,系统全局不允许Activity重复